В программе не должно быть глобальных переменных.
Вот моя задача: Дана матрица А(5х5). Определить массив Х из 5 элементов, каждый из которых равен 1, если сумма модулей элементов соответствующего столбца больше наибольшего по модулю элемента матрицы и –1 в противном случае. Определить величину Y, как сумму положительных элементов первой строки матрицы, расположенных после первого нулевого элемента.
я попыталась с этими потоками разобраться вот что получилось, правда до конца дописать так и не смогла там ошибка
Код: Выделить всё
#include<stdio.h>
#include <conio.h>
#include<locale.h>
#include <math.h>
#define n 3
void input_keyboard(int a[n][n])//Ввод с клавиатуры
{
int i,j;
printf("Введите элементы матрицы А: \n");
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
scanf ("%d", &a[i][j]);
}
void input_file(int(*a)[n])//Ввод из файла
{
FILE *fp;
fp=fopen("lab3.txt","r");
if (fp)
{
for (int i=0;i<n; i++)
for(int j=0; j<n; j++)
fscanf(fp, "%d",&a[i][j]);
fclose(fp);
}
}
int form_x(int a[n][n], void (*pf)(int [n][n]))//формирую массив х(нахожу максимум сумму столбцов, и сравнить!!!!)
{
int sum[n], max,i,j;
static int x[n];
pf(a);
max=abs(a[0][0]);//нахождение максимального элемента матрицы
for ( i=0; i<n; i++)
for ( j=0; j<n; j++)
if (abs(a[i][j]) > max)
max=abs(a[i][j]);
for ( j=0; j<n; j++)//сумма элеменов столбцов
{
sum[j]=0;
for ( i=0; i<n; i++)
sum[j]=sum[j]+a[i][j];
sum[j]=abs(sum[j]);
}
for ( j=0; j<n; j++)
if (sum[j]>max) x[j]=1;
else x[j]=-1;
return *x;
}
void output(const int x[], const int a[][n] )
{
int i,j;
printf("Матрица А:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("Массив Х:\n");
for (j=0;j<n;j++)
printf("%5d",x[j]);
printf("\n");
}
int main()
{
setlocale(LC_CTYPE,"");
int a[n][n], x[n], c;
void (*pfunc)(int [n][n]);
do
{
printf("Ввод матрицы:\n1 - с клавиатуры\n2 - \
из файла\n");
scanf("%d",&c);
}
while (c!=1 && c!=2);
// Присваивание указателю адреса одной из функций:
switch (c)
{
case 1: pfunc=&input_keyboard;
break;
case 2: pfunc=&input_file;
}
output(form_x(a,x,pfunc),a);
_getch();
}

) и добавили два слова int но у меня компилятор все равно выдает ошибки)))