Как найти наибольший элемент во втором столбце, и определить среднее арифметическое для всех элементов? - 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();
}

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

  1. Включаются необходимые заголовочные файлы.
  2. Задается константа N, представляющая количество строк и столбцов в матрице.
  3. Создается матрица mas[N][N] и инициализируется случайными числами от 0 до 499.
  4. Выполняется двойной цикл, который выводит все элементы матрицы на экран.
  5. Переменная max инициализируется значением первого элемента второй строки матрицы.
  6. Выполняется цикл по строкам матрицы, начиная со второй строки, и сравнивается значение каждого элемента второй колонки с текущим максимальным значением. Если текущее значение больше, то оно становится новым максимальным, а переменная k запоминает номер строки, в которой найдено максимальное значение.
  7. Выводится на экран максимальное значение второго столбца и его номер.
  8. Переменная sr инициализируется нулем, а переменная n — нулем.
  9. Выполняется двойной цикл, который проходит по всем элементам матрицы, начиная с элемента в строке k+1, и суммирует все элементы в переменную sr, а также увеличивает переменную n на единицу.
  10. Переменная sr делится на n для получения среднего арифметического, и результат выводится на экран.
  11. Программа ожидает нажатия клавиши для выхода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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