Найти элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали - C (СИ) (75355)
Формулировка задачи:
Дана матрица. Среди элементов матрицы лежащих выше главной диагонали найти те, которые превышают все элементы лежащие ниже главной диагонали. Вычислить сумму
Решение задачи: «Найти элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
main()
{
const int n=4;
int a[n][n], s=0, i, j, under_max=0;
srand(time(NULL));
for (i=0; i<=n; i++)
{
for (j=0; j<=n; j++)
{
a[i][j]=rand()%1000;
if (i>j && a[i][j]>under_max)
under_max=a[i][j];
printf("%5d",a[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0; i<=n; i++)
for (j=0; j<=n; j++)
if (i<j && a[i][j]>under_max)
{
printf("%d ",a[i][j]); //элементы выше главной диагонали, которые превышают все элементы, лежащие ниже главной диагонали
s+=a[i][j]; //сумма этих элементов
}
printf("\nSumma = %d",s); //если сумма == 0, значит нет таких элементов
getch();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию main()
- Задаем размер матрицы n=4 и инициализируем ее случайными значениями с помощью функции rand()%1000
- Инициализируем переменную s=0 для подсчета суммы элементов, i, j, under_max=0
- Задаем начальное значение для генератора случайных чисел с помощью функции srand(time(NULL))
- С помощью двух вложенных циклов заполняем матрицу a[i][j] случайными числами
- С помощью условного оператора if (i>j && a[i][j]>under_max) находим максимальное значение под главной диагональю и обновляем under_max
- С помощью функции printf() выводим значения матрицы на экран
- С помощью двух вложенных циклов находим элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали
- С помощью оператора printf() выводим найденные элементы на экран
- С помощью оператора += суммируем найденные элементы и сохраняем сумму в переменной s
- С помощью оператора printf() выводим сумму на экран
- С помощью функции getch() останавливаем выполнение программы
- Если сумма равна нулю, то выводим сообщение об отсутствии элементов, которые превышают все элементы, лежащие ниже главной диагонали