В действительной квадратной матрице порядка п найти наибольший по модулю элемент. Получить квадратную матрицу - 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(
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д