Даны три матрицы. Напечатать ту из них, максимум абсолютных величин которой наименьший - 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью, математическими функциями и сканированием данных.
- Определяем функцию input_matr, которая принимает на вход матрицу, её размер и имя матрицы. Выводит приглашение для ввода элементов матрицы и считывает их с помощью функции scanf.
- Определяем функцию print_matr, которая принимает на вход матрицу, её размер и имя матрицы. Выводит название матрицы и её элементы в виде таблицы.
- Определяем функцию norma, которая принимает на вход матрицу, её размер и находит максимальное абсолютное значение элемента матрицы.
- В функции main считываем размер матрицы с помощью функции scanf.
- С помощью функции input_matr вводим элементы матриц A, B и C.
- С помощью функции norma находим максимальное абсолютное значение нормалей матриц A, B и C.
- С помощью условного оператора if-else выбираем матрицу с наименьшей нормой и выводим её с помощью функции print_matr.
- Возвращаем 0 из функции main, что означает корректный выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д