• срочнос++. написать код к заданию1)Дана матрица размера Мх М. Найти номера строки и столбца дляэлемента матрицы, наиболее близкого к среднему значению всех ее элементов.​

Ответы 1

  • Ответ: #include <iostream>

    #include <cmath>

    using namespace std;

    int main() {

       // Размер матрицы

       const int M = 3;

       // Матрица

       int matrix[M][M];

       // Среднее значение

       double average = 0;

       // Номера строки и столбца искомого элемента

       int row = 0, col = 0;

       // Минимальная разница между элементом и средним значением

       double min_diff = 0;

       // Заполнение и вывод матрицы

       cout << "Введите элементы матрицы:" << endl;

       for (int i = 0; i < M; i++) {

           for (int j = 0; j < M; j++) {

               cin >> matrix[i][j]; // Ввод элемента

               average += matrix[i][j]; // Добавление к сумме

               cout << matrix[i][j] << " "; // Вывод элемента

           }

           cout << endl;

       }

       // Вычисление среднего значения

       average /= M * M;

       cout << "Среднее значение: " << average << endl;

       // Инициализация минимальной разницы первым элементом матрицы

       min_diff = abs(matrix[0][0] - average);

       // Поиск элемента, наиболее близкого к среднему значению

       for (int i = 0; i < M; i++) {

           for (int j = 0; j < M; j++) {

               // Вычисление разницы между текущим элементом и средним значением

               double diff = abs(matrix[i][j] - average);

               // Сравнение с минимальной разницей

               if (diff < min_diff) {

                   // Обновление номеров строки и столбца и минимальной разницы

                   row = i;

                   col = j;

                   min_diff = diff;

               }

           }

       }

       // Вывод результата

       cout << "Номера строки и столбца для элемента, наиболее близкого к среднему значению: " << endl;

       cout << "Строка: " << row + 1 << endl; // Прибавляем 1, так как нумерация начинается с 0

       cout << "Столбец: " << col + 1 << endl; // Прибавляем 1, так как нумерация начинается с 0

       return 0;

    }

    Объяснение:

    Объявить и инициализировать матрицу размера MxM с помощью циклов или ввода с клавиатуры.

    Найти среднее значение всех элементов матрицы, суммируя их и деля на количество элементов (M*M).

    Объявить и инициализировать переменные для хранения номеров строки и столбца искомого элемента, а также переменную для хранения минимальной разницы между элементом и средним значением.

    Пройтись по всем элементам матрицы с помощью вложенных циклов и сравнивать абсолютное значение разницы между текущим элементом и средним значением с минимальной разницей. Если текущая разница меньше минимальной, то обновить значения номеров строки и столбца и минимальной разницы.

    Вывести на экран номера строки и столбца искомого элемента.

    • Автор:

      haley9utz
    • 1 год назад
    • 1
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years