Заменить нулем максимальный по модулю элемент - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n,m,i,j;
int A[10][10];
printf("Количество строк: ");
scanf("%d",&n);
printf("Количество столбцов: ");
scanf("%d",&m);
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
A[i][j]=rand()%10;
printf("%d",A[i][j]);
}
printf("\n");
}
return 0;
}Решение задачи: «Заменить нулем максимальный по модулю элемент»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n ,m, i, j, max;
int A[10][10];
printf("Количество строк: ");
scanf("%d", &n);
printf("Количество столбцов: ");
scanf("%d", &m);
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
A[i][j] = rand() % 10;
printf("%d ", A[i][j]);
}
printf("\n");
}
printf("\n");
max = abs(A[0][0]);
for(i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
if (abs(A[i][j]) > max) max = A[i][j];
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
if (abs(A[i][j]) == max) A[i][j] = 0;
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
printf("%d ", A[i][j]);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливаются кодировки консоли
- Объявляются переменные: n, m, i, j, max и массив A
- Считываются значения переменных n и m
- С помощью двух вложенных циклов заполняется массив A случайными целыми числами от 0 до 9
- Выводится на экран содержимое массива A
- Находится максимальное по модулю значение в массиве A, и сохраняется в переменную max
- Два вложенных цикла проходят по всем элементам массива A и если значение элемента больше max, то max обновляется
- Два вложенных цикла проходят по всем элементам массива A и если значение элемента равно max, то этот элемент заменяется на 0
- С помощью двух вложенных циклов выводится на экран обновленное содержимое массива A
- Завершается программа и возвращается 0