Даны три матрицы. Напечатать ту из них, максимум абсолютных величин которой наименьший - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Подскажите,пожалуйста, где ошибки. Даны 3 матрицы.Напечатать ту из них, максимум абсолютных величин которой наименьший.
#include <stdio.h> 
#include <conio.h> 
 
void input_matr (int[10][10], char); 
void print_matr (int[10][10], char); 
int norma (int[10][10]); 
int A[10][10], B[10][10],C[10][10]; 
int n; 
int main () 
{ 
printf("? n="); scanf("%d",&n); 
input_matr(A,'A'); 
input_matr(B,'B'); 
input_matr(C,'C');
if((norma(A)<norma(B)) && (norma(A)<norma(C)))
print_matr(A);
if((norma(B)<norma(A)) && (norma(B)<norma(C)))
print_matr(B);
if (norma(C)<norma(A) && (norma(C)<norma(B)))
print_matr(C);

)
 
void input_matr(int x[10][10],char Name)
{int i,j;
printf("vvod matrici%c\n",Name); 
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&x[i,j]);}
 
void print_matr(int x[10][10],char Name)
{int i,j;
pintf("matrica %c\n",Name);
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
printf("%d\t",x[i][j]);
printf("/n");
}
}
int norma(int x[10][10],char Name )
{int i,j;
float max=fabs(x[1][1]]);
for (i=0;i<n;i++)
{
    for(j=0;j<n;j++)
    {if (max<fabs(x[i][j]))
    {max=fabs(x[i][j])
    }
    }
}
return max;
}

}

Решение задачи: «Даны три матрицы. Напечатать ту из них, максимум абсолютных величин которой наименьший»

textual
Листинг программы
#include <stdio.h> 
#include <conio.h> 
#include <math.h>
void input_matr (int[10][10],int n, char); 
void print_matr (int[10][10],int n, char); 
int norma (int[10][10],int n); 
int main () 
{ 
    int A[10][10], B[10][10],C[10][10]; 
    int n; 
    printf("? n="); scanf("%d",&n); 
    input_matr(A,n,'A'); 
    input_matr(B,n,'B'); 
    input_matr(C,n,'C');
    if( norma(A,n)<norma(B,n) && norma(A,n)<norma(C,n) )
        print_matr(A,n,'A');
    else if( norma(B,n)<norma(A,n) && norma(B,n)<norma(C,n) )
        print_matr(B,n,'B');
    else
        print_matr(C,n,'C');
    return 0;
}
 
void input_matr(int x[10][10],int n,char Name)
{
    int i,j;
    printf("vvod matrici%c\n",Name); 
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&x[i][j]);
}
 
void print_matr(int x[10][10],int n,char Name)
{
    int i,j;
    printf("matrica %c\n",Name);
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
            printf("%d\t",x[i][j]);
        printf("/n");
    }
}
int norma(int x[10][10],int n)
{
    int i,j,max;
    max=abs(x[0][0]);
    for (i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if (max<abs(x[i][j]))
                max=abs(x[i][j]);
        }
    }
    return max;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с консолью, математическими функциями и сканированием данных.
  2. Определяем функцию input_matr, которая принимает на вход матрицу, её размер и имя матрицы. Выводит приглашение для ввода элементов матрицы и считывает их с помощью функции scanf.
  3. Определяем функцию print_matr, которая принимает на вход матрицу, её размер и имя матрицы. Выводит название матрицы и её элементы в виде таблицы.
  4. Определяем функцию norma, которая принимает на вход матрицу, её размер и находит максимальное абсолютное значение элемента матрицы.
  5. В функции main считываем размер матрицы с помощью функции scanf.
  6. С помощью функции input_matr вводим элементы матриц A, B и C.
  7. С помощью функции norma находим максимальное абсолютное значение нормалей матриц A, B и C.
  8. С помощью условного оператора if-else выбираем матрицу с наименьшей нормой и выводим её с помощью функции print_matr.
  9. Возвращаем 0 из функции main, что означает корректный выход из программы.

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы