В действительной квадратной матрице порядка п найти наибольший по модулю элемент. Получить квадратную матрицу - C (СИ)
Формулировка задачи:
У меня эта программа написана на СИ++. Напишите пожалуйста ее на СИ
#include<iostream> #include<iomanip> #include<cmath> #include<ctime> #include<cstdlib> using namespace std; #define N 5 int main() { srand(time(NULL)); int A[N][N]; cout<<"Array A[N][N] : \n\n"; for ( int i=0; i<N; i++) { for ( int j=0; j<N; j++) { A[i][j] = (rand()%200) -100; cout<<fixed<<setw(4)<<A[i][j]<<" "; } cout<<endl; } int max = A[0][0]; int max_i = 0; int max_j = 0; for ( int i=0; i<N; i++) { for ( int j=0; j<N; j++) { if ( max < abs(A[i][j]) ) { max = abs(A[i][j]); max_i = i; max_j = j; } } } cout<<"\nMax element = "<<max<<"["<<max_i<<"]["<<max_j<<"]\n\n"; int B[N-1][N-1]; cout<<"Array B[N-1][N-1]:\n\n"; for ( int i=0; i<N-1; i++) { for ( int j=0; j<N-1; j++) { if ( i == max_i || j == max_j ) continue; B[i][j] = A[i][j]; cout<<fixed<<setw(4)<<A[i][j]<<" "; } cout<<endl; } cout<<endl; system("pause"); return 0; }
Решение задачи: «В действительной квадратной матрице порядка п найти наибольший по модулю элемент. Получить квадратную матрицу»
textual
Листинг программы
#include<stdio.h> #include<math.h> #include<time.h> #include<stdlib.h> #define N 5 int main(void) { int A[N][N]; int i,j; int max = A[0][0]; int max_i = 0; int max_j = 0; int B[N-1][N-1]; srand(time(NULL)); printf("%s\n\n","Array A[N][N]:"); for (i=0; i<N; i++) { for (j=0; j<N; j++) { A[i][j] = (rand()%200) -100; printf("%4d ",A[i][j]); } puts(""); } for (i=0; i<N; i++) { for (j=0; j<N; j++) { if ( max < abs(A[i][j]) ) { max = abs(A[i][j]); max_i = i; max_j = j; } } } printf("\nMax element = %d [%d][%d]\n",max,max_i,max_j); printf("%s\n\n","Array B[N-1][N-1]:"); for (i=0; i<N-1; i++) { for (j=0; j<N-1; j++) { if ( i == max_i || j == max_j ) continue; B[i][j] = A[i][j]; printf("%4d ",A[i][j]); } puts(""); } puts(""); system("pause"); return 0; }
Объяснение кода листинга программы
- Объявление переменных и массивов:
- int A[N][N]; - объявление матрицы A порядка N
- int i, j; - объявление переменных для циклов
- int max = A[0][0]; - объявление переменной для хранения максимального элемента
- int max_i = 0; - объявление переменной для хранения индекса строки максимального элемента
- int max_j = 0; - объявление переменной для хранения индекса столбца максимального элемента
- int B[N-1][N-1]; - объявление матрицы B порядка (N-1)
- Инициализация случайными значениями:
- srand(time(NULL)); - инициализация генератора случайных чисел текущим временем
- printf(
%s\n\n
,Array A[N][N]:
); - вывод заголовка - for (i=0; i<N; i++) - цикл по строкам матрицы A
- for (j=0; j<N; j++) - цикл по столбцам матрицы A
- A[i][j] = (rand()%200) -100; - инициализация элемента случайным числом от -100 до 199
- printf(
%4d
,A[i][j]); - вывод элемента матрицы с отступами - puts(``); - переход на новую строку
- printf(
\nMax element = %d [%d][%d]\n
,max,max_i,max_j); - вывод максимального элемента и его индексов
- Создание матрицы B:
- printf(
%s\n\n
,Array B[N-1][N-1]:
); - вывод заголовка - for (i=0; i<N-1; i++) - цикл по строкам матрицы B
- for (j=0; j<N-1; j++) - цикл по столбцам матрицы B
- if ( i == max_i || j == max_j ) - пропуск элементов с индексами максимального элемента
- B[i][j] = A[i][j]; - копирование элемента из матрицы A в матрицу B
- printf(
%4d
,A[i][j]); - вывод элемента матрицы с отступами - puts(``); - переход на новую строку
- system(
pause
); - ожидание нажатия клавиши - return 0; - завершение программы
- printf(
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д