Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Внес изменения чтобы программа хотя бы компилировалась
Код: Выделить весь код
#include<stdio.h>
#include <conio.h>
#include<locale.h>
#include <math.h>
#define n 3
//Функция вода элементов матрицы с клавиатуры
void input_matr(int a[n][n])
{
        int i,j;
        printf("Введите элементы матрицы А:  \n");
        for (i=0; i<n; i++)
                for (j=0; j<n; j++)
                        scanf("%d", &a[i][j]);
}
//Функция заполнения матрицы 
void input_file (int (*a)[n])
{
        int i,j;
        FILE*file;
        file=fopen("c:\\matr.txt", "r");
        if (file)
        {
                for (i=0;i<n; i++)
                        for(j=0;j<n;j++)
                                fscanf(file,"%d",&a[i][j]);
                fclose(file);
        }
}
//функция вычисления элементов мссива х
int *mas_x(int(*a)[n],int *x, void (*pfunc)(int [n][n]))
{
        pfunc(a);
        int sum[n], max,i,j;
//      static int x[n];
        pfunc(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 *a;
}
//функция вывода матрицы а и х
void output(int x[], 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 (i=0;i<n;i++)
                printf("%5d",x[i]);
        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_matr;
                break;
                case 2: pfunc=&input_file;
                        }
        output(mas_x(a,x,pfunc),a);
        _getch();

int recurs(int *p, int t, int *sum)
{
        if (t==0)
                return 0;
        else sum=sum+recurs(p+1, t-1, sum);
}
}
Это не значит, что она работает правильно. Это даже не значит, что моя правка вообще имеет хоть какой-нибудь смысл (по крайней мере, суммирование указателя смысла точно не имеет. Как и вообще вся функция recurs). Это значит только, что на моем компьютере после удаления "#include <conio.h>" (у меня нет такого файла и я вообще не знаю зачем он нужен) и замены _getch() на getchar() программа компилируется без ошибок или предупреждений.

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.


Последний раз редактировалось AMDBulldozer, 11-05-2013 в 02:50.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:39, 11-05-2013 | #7