Умножение элементов произвольного столбца на заданное число - C (СИ)
Формулировка задачи:
если что, вот такое задание
P7. Ввести двумерный массив размерностью 5х6. Рассчитать в одной функции сумму и произведение значений элементов произвольной строки двухмерного массива. Написать функцию умножения элементов произвольного столбца на заданное число. Ввод массива и исходных данных выполнить в функции ввода, вывод массива и результатов – в функции вывода.
у меня выводит ошибки:
36: Declaration is not allowed here
37: Declaration syntax error
58: Declaration missing ;
58: Compound statement missing }
помогите пожалуйста, чем сможете, целый день бьюсь с ней
#include <stdio.h>
#include <math.h>
void vvod (float A[5][6], int n, int k, int *a, int *x, float *z);
void sumproiz (float A[5][6], int n, int k, int *a, float *sum, float *p);
void proizvedenie (float A[5][6], int n, int k, int *x, float *z, float *proz);
void vyvod (float A[5][6], int n, int k, float sum, float p);
void vuvod (float A[5][6], int n, int k, float proz);
void vvod (float A[5][6], int n, int k, int *a, int *x, float *z)
{
int i,j;
printf ("\nVvedite elementy massiva");
for (i=0;i<n;i++)
for (j=0;j<k;j++)
scanf ("%3f", &A[i][j]);
printf ("\nVvedite nomer ctpoku");
scanf ("%d", *a);
printf ("\nVvedite nomer ctolbca");
scanf ("%d", *x);
printf ("\nVvedite mnogitel");
scanf ("%d", *z);
}
void sumproiz (float A[5][6], int n, int k, int *a, float *sum, float *p)
{
int j;
for (j=0;j<k;j++)
*sum+=A[*a][j];
*p*=A[*a][j];
}
void proizvedenie (float A[5][6], int n, int k, int *x, float *z, float *proz)
{
int i;
*proz=1;
for (i=0;i<n;i++)
*proz=*z*A[i][*x];
void vyvod (float A[5][6], int n, int k, float sum, float p)
{
int i,j;
printf ("\nSumma = ", sum);
printf ("\nProizvedenie v ctroke = ", p);
for (i=0;i<n;i++)
for (j=0;j<k;j++)
printf ("%f", A[i][j]);
printf ("\n");
}
void vuvod (float A[5][6], int n, int k, float proz)
{
printf ("Proizvedenie v ctolbce = ", proz);
}
void main ()
{
float A[5][6],proz,sum,p,z;
int a,x;
vvod (A,5,6, &a, &x, &z);
sumproiz (A,5,6, &a, &sum, &p);
proizvedenie (A,5,6, x, z, &proz);
vyvod (A,5,6, &sum, &p);
vuvod (A,5,6, proz);
}Решение задачи: «Умножение элементов произвольного столбца на заданное число»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void vvod(float A[5][6], int n, int k, int* a, int* x, float* z)
{
int i, j;
printf("Vvedite elementy massiva\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < k; j++)
{
scanf("%3f", &A[i][j]);
}
}
printf("Vvedite nomer ctpoku: ");
scanf("%d", a);
printf("Vvedite nomer ctolbca: ");
scanf("%d", x);
printf("Vvedite mnogitel: ");
scanf("%f", z);
}
void sumproiz(float A[5][6], int n, int k, int* a, float* sum, float* p)
{
int j;
*sum = 0;
for (j = 0; j < k; j++)
{
*sum += A[*a][j];
}
*p *= A[*a][j];
}
void proizvedenie(float A[5][6], int n, int k, int* x, float* z, float* proz)
{
int i;
*proz = 1;
for (i = 0; i < n; i++)
{
*proz = *z * A[i][*x];
}
}
void vyvod(float A[5][6], int n, int k, float sum, float p)
{
int i, j;
printf("Summa = %f\n", sum);
printf("Proizvedenie v ctroke = %f\n", p);
for (i = 0; i < n; i++)
{
for (j = 0; j < k; j++)
{
printf("%8.2f", A[i][j]);
}
printf("\n");
}
}
void vuvod(float A[5][6], int n, int k, float proz)
{
printf("Proizvedenie v ctolbce = %f\n", proz);
}
int main()
{
float A[5][6], proz, sum, p = 0, z;
int a, x;
vvod(A, 5, 6, &a, &x, &z);
sumproiz(A, 5, 6, &a, &sum, &p);
proizvedenie(A, 5, 6, &x, &z, &proz);
vyvod(A, 5, 6, sum, p);
vuvod(A, 5, 6, proz);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Ввод значений матрицы и других переменных с помощью функции vvod.
- Вычисление суммы элементов столбца с помощью функции sumproiz.
- Вычисление произведения элементов столбца с помощью функции proizvedenie.
- Вывод суммы и произведения на экран с помощью функции vyvod.
- Вывод произведения в столбец на экран с помощью функции vuvod.
- Использование функции system(
pause) для приостановки работы программы до нажатия клавиши. - Возвращение значения 0 в конце программы для корректного завершения работы.