Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.02.2019
Сообщений: 3
1

Вывести количество элементов матрицы, значение которых больше среднего арифметического значения элементов

18.02.2019, 21:42. Просмотров 1378. Ответов 9
Метки нет (Все метки)


Помогите пожалуйста с заданием, нужен код программы с применением двумерного массива

Тема: «Табличная организация данных. Двумерные массивы и операторы их описания. Разработка и выполнение программ с использованием двумерных массивов»

Дан двумерный квадратный массив из 16 элементов. Написать программу, которая находит и выводит количество элементов массива, значение которых больше среднего арифметического значения элементов этого массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2019, 21:42
Ответы с готовыми решениями:

Определить количество элементов значение которых больше среднего арифметического всех элементов
пределить количество элементов значение которых больше среднего арифметического всех элементов

Найти количество элементов, значение которых больше среднего арифметического минимального и максимального элементов
Дан массив. Найти количество элементов, значение которых больше среднего арифметического...

Вычислить количество элементов в файле, значение которых больше среднего арифметического
Дано файл , элементами которого являются целые числа. Вычислить количество элементов ,значение...

Определить количество элементов, значение которых больше среднего значения всех элементов массива
Определить количество элементов, значение которых больше среднего значения всех элементов массива...

9
213 / 160 / 52
Регистрация: 09.12.2017
Сообщений: 520
18.02.2019, 21:54 2
Вот так находим среднее арифметическое такого массива :
C++
1
2
3
4
5
double mult = 1; // произведение всех элементов массива
for (int i = 0; i < 16; i++)
    for (int j = 0; j < 16; j++)
        mult *= arr[i][j]; // перемножаем все элементы массива
double avarange = (double)mult / (16 * 16); // делим произведение всех элементов массива на их количество
Вот так находиться количество элементов, которые больше среднего арифметического массива :
C++
1
2
3
4
5
6
7
int count = 0;
for (int i = 0; i < 16; i++) {
    for (int j = 0; j < 16; j++) {
        if (arr[i][j] > avarange)
            count++;
    }
}
Вот так выводим эта количество :
C++
1
std::cout << " count : " << count << std::endl;
0
5866 / 3989 / 2308
Регистрация: 18.12.2017
Сообщений: 12,502
19.02.2019, 02:06 3
JohnBlack123, в массиве 16 элементов, а не 256
0
213 / 160 / 52
Регистрация: 09.12.2017
Сообщений: 520
19.02.2019, 08:05 4
Yetty, может я что-то путаю, но в условии сказано, что дан двумерный квадратный массив.
Цитата Сообщение от ausfm Посмотреть сообщение
Дан двумерный квадратный массив из 16 элементов
Значит дан массив 16*16.
Нужно было найти сумму и поделить на их количество - тут я ошибся.
C++
1
2
3
4
5
double sum = 1; // произведение всех элементов массива
for (int i = 0; i < 16; i++)
    for (int j = 0; j < 16; j++)
        sum += arr[i][j]; // перемножаем все элементы массива
double avarange = (double)sum / (16 * 16); // делим произведение всех элементов массива на их количество
0
913 / 591 / 291
Регистрация: 22.02.2018
Сообщений: 1,740
Записей в блоге: 2
19.02.2019, 08:44 5
JohnBlack123,
Цитата Сообщение от ausfm Посмотреть сообщение
Дан двумерный квадратный массив из 16 элементов
Это 4*4
0
213 / 160 / 52
Регистрация: 09.12.2017
Сообщений: 520
19.02.2019, 08:45 6
А, ясно. Что-то я с утра медленно соображаю.
Тогда нужно сумму делить на 16
0
913 / 591 / 291
Регистрация: 22.02.2018
Сообщений: 1,740
Записей в блоге: 2
19.02.2019, 08:48 7
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
Нужно было найти сумму
Тогда
C++
1
  double sum = 0;
Добавлено через 1 минуту
Ну и зная тот факт, что в памяти элементы двумерного массива расположены линейно, можно вообще одним циклом обойтись
0
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
19.02.2019, 10:25 8
C++
1
2
3
4
5
double sum = 0; // инициализируем счетчик.
for (int i = 0; i < 4; i++)
    for (int j = 0; j < 4; j++)
        sum += arr[i][j]; // находим сумму всех элементов
double avarange = (double)mult / 16; // находим среднее арифметическое всех элементов массива
C++
1
2
3
4
5
6
int count = 0;
for (i = 0; i < 4; i++) { // заново не нужно создавать переменные, i и j уже созданы в коде ранее
    for (j = 0; j < 4; j++) {
        if (arr[i][j] > avarange) count++;
    }
}
0
913 / 591 / 291
Регистрация: 22.02.2018
Сообщений: 1,740
Записей в блоге: 2
19.02.2019, 10:30 9
Цитата Сообщение от Руслан92 Посмотреть сообщение
заново не нужно создавать переменные, i и j уже созданы в коде ранее
Как так? Они были созданы внутри тела циклов и умерли за их пределами. И вообще нафига огород городить в данном случае с двумя вложенными циклами - ничего не мешает
C++
1
2
3
4
5
6
7
8
const int dim = 16;
/////////////////////
 
double sum = 0
  for(int i=0; i<dim; i++)
   sum+=arr[i];
 
  double avr = (double)sum/dim;
С нахождением количества тоже самое
0
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
19.02.2019, 10:39 10
TrollHammer, как ты сначала объявляешь двумерный массив, а затем шагаешь по нему как одномерному? Ты свой код скомпилируй, предварительно создав двумерный массив и получишь примерно такую ошибку Error] invalid use of non-lvalue array. Не догадываешься почему?

З.Ы. про переменные согласен. Не увидел, что они в каждом цикле (зачем так писать в принципе?) создаются сызнова. Вообще переменные которые индексируют массив вроде как традиционно в области видимости функции main прописывают, чтоб не создавать их постоянно, а просто в каждом цикле, где они нужны, инициализировать нулем, либо тем, чем нужно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2019, 10:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Определить количество элементов, значение которых больше среднего значения всех элементов массива
Определить количество элементов, значение которых больше среднего значения всех элементов массива.

Определить количество элементов, значение которых больше среднего значения всех элементов массива
Определить количество элементов, значение которых больше среднего значения всех элементов массива.

Определить количество элементов, значение которых больше среднего значения всех элементов массива
Определить количество элементов, значение которых больше среднего значения всех элементов массива....

Найти значения тех элементов матрицы, которые больше среднего арифметического
Если среднее арифметическое матрицы А положительно, задать элементам С1, C2, ..., Сi; значения тех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.