Найти максимальное число и подсчитать, сколько раз оно находится в массиве - C (СИ)
Формулировка задачи:
Need help
Не получается посчитать максимальное число сколько раз оно находиться в массиве.
Спасибо.
помогите нубу зарание спасибо.
Code:
#include <stdio.h>
#define n 5
int main()
{
int i, num[n], max, qty = 1;
for (i = 0; i < n; i++)
{
printf("Please enter num %i\n", i);
scanf("%i",&num[i]);
}
max = num[0];
for (i = 0; i < n; i++)
{
if (num[i] > max)
{
max = num[i];
}
if (num[i] == max) // Need to calculate how many times the maximum number is. // тут проблема
{
qty++;
}
}
printf("The highes number %i was times %d \n", max, qty); // need to print the max number and qty of maximum number.
}Решение задачи: «Найти максимальное число и подсчитать, сколько раз оно находится в массиве»
textual
Листинг программы
#include <stdio.h>
#define n 5
int main() {
int i, num[ n ], max, qty = 0;
for ( i = 0; i < n; ++i ) {
printf( "Please enter num %i\n", i );
scanf( "%i", &num[ i ] );
}
max = num[ 0 ];
// первый цикл - к концу первого цикла мы точно определим максимальное значение
// цикл начинаем с единицы - не нужно здесь с нуля
for ( i = 1; i < n; ++i )
if ( num[ i ] > max ) // если нашли новое максмальное
max = num[ i ]; // запоминаем его значение
// второй цикл - уже точно известно максимальное значение
// потому можем высчитать сколько раз оно встречается в массиве
for ( i = 0; i < n; ++i )
// если максимальное число встретилось нам в очередной раз
if ( num[ i ] == max )
++qty; // тогда увеличим счётчик
printf( "The highes number %i was times %d \n", max, qty ); // need to print the max number and qty of maximum number.
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с консолью
- Определение размера массива n
- Объявление переменных:
- i - счётчик для циклов
- num[n] - массив для ввода чисел
- max - переменная для хранения максимального числа
- qty - переменная для хранения количества максимального числа
- Ввод чисел в массив с помощью цикла for и функции scanf
- Инициализация переменной max значением первого элемента массива
- Первый цикл for (от 1 до n-1) для поиска максимального числа
- Если текущий элемент массива больше max, то обновляем max
- Второй цикл for (от 0 до n-1) для подсчёта количества максимального числа
- Если текущий элемент массива равен max, то увеличиваем qty
- Вывод на экран максимального числа и количества его вхождений
- Возврат 0, означающий успешный завершение программы