В действительной квадратной матрице порядка п найти наибольший по модулю элемент. Получить квадратную матрицу - 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;
}

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

  1. Объявление переменных и массивов:
    • 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)
  2. Инициализация случайными значениями:
    • 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); - вывод максимального элемента и его индексов
  3. Создание матрицы 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; - завершение программы

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

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