Получить матрицу путем деления всех ее элементов на элемент, наибольший по абсолютной величине - C (СИ)
Формулировка задачи:
Дано прямоугольную матрицу размером М на Н.Одержаты новую матрицу путем деления всех элементов данной матрицы на элемент, наибольший по абсолютной величине. На печать вывести новую матрицу и максимальный элемент по абсолютной величине
Решение задачи: «Получить матрицу путем деления всех ее элементов на элемент, наибольший по абсолютной величине»
textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<time.h>
#define n 4
#define m 6
int main()
{
unsigned int i,j;
int max=INT_MIN;
int a[n][m];
float b[n][m]={0};
system("chcp 1251 >> nul");
srand((unsigned int)time(0));
puts("Исходный матрица имеет вид:");
for (i=0;i<n;++i) {
for (j=0;j<m;++j) {
a[i][j]=rand()%100-50;
printf("%4d ",a[i][j]);
if (a[i][j]>abs(max)) max=a[i][j];
}
puts("");
}
printf("\nМаксимальный элемент матрицы по абсолютной величине = %d\n",max);
puts("\nРезультирующая матрица имеет вид:");
for (i=0;i<n;++i) {
for (j=0;j<m;++j) {
b[i][j]=(float)a[i][j]/max;
printf("%7.2f ",b[i][j]);
}
puts("");
}
system("pause");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с матрицами и временем
- Объявление переменных:
- i, j - циклы для перебора элементов матрицы
- max - переменная для хранения максимального элемента матрицы
- a[n][m] - исходная матрица, заполненная случайными числами от -50 до 50
- b[n][m] - результирующая матрица, в которой каждый элемент делится на максимальный элемент матрицы
- Вывод исходной матрицы
- Поиск максимального элемента матрицы по абсолютной величине
- Вывод результирующей матрицы, в которой каждый элемент делится на максимальный элемент матрицы
- Завершение программы и ожидание нажатия клавиши