Как найти наибольший элемент во втором столбце, и определить среднее арифметическое для всех элементов? - C (СИ)
Формулировка задачи:
Всем привет
Есть программа по рандомному заполнению массива
Нужно найти наибольший элемент во втором столбце и определить среднее арифметическое для всех элементов, расположенных ниже строки с наибольшим элементом.
Как сделать?
Какой принцип решения подобного рода задач?
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctime> int main(int argc, char * argv[]) { srand(time(NULL)); const short N = 5; int mas[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { mas[i][j] = rand() % 500; } } //--------------------------------------- for (int p = 0; p < N; p++) { for (int pp = 0; pp < N; pp++) { printf("%d\t", mas[p][pp]); } printf("\n"); } _getch(); return 0; }
Решение задачи: «Как найти наибольший элемент во втором столбце, и определить среднее арифметическое для всех элементов?»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctime> int main() { srand(time(NULL)); const short N = 5; int mas[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { mas[i][j] = rand() % 500; } } //--------------------------------------- for (int p = 0; p < N; p++) { for (int pp = 0; pp < N; pp++) { printf("%d\t", mas[p][pp]); } printf("\n"); } int max=mas[0][1],k; for (int i = 1; i < N; i++) { if (mas[i][1]>max) max=mas[i][1]; k=i; } printf("\nMax in 2 stolb = %d\t", max); double sr=0;int n=0; for (int i = k; i < N; i++) for (int j = 0; j < N; j++) { sr+=mas[i][j]; n++; } sr=sr/n; printf("\n sr arifm = %6.2lf\t", sr); _getch(); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы.
- Задается константа N, представляющая количество строк и столбцов в матрице.
- Создается матрица mas[N][N] и инициализируется случайными числами от 0 до 499.
- Выполняется двойной цикл, который выводит все элементы матрицы на экран.
- Переменная max инициализируется значением первого элемента второй строки матрицы.
- Выполняется цикл по строкам матрицы, начиная со второй строки, и сравнивается значение каждого элемента второй колонки с текущим максимальным значением. Если текущее значение больше, то оно становится новым максимальным, а переменная k запоминает номер строки, в которой найдено максимальное значение.
- Выводится на экран максимальное значение второго столбца и его номер.
- Переменная sr инициализируется нулем, а переменная n — нулем.
- Выполняется двойной цикл, который проходит по всем элементам матрицы, начиная с элемента в строке k+1, и суммирует все элементы в переменную sr, а также увеличивает переменную n на единицу.
- Переменная sr делится на n для получения среднего арифметического, и результат выводится на экран.
- Программа ожидает нажатия клавиши для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д