Найти максимальное число и подсчитать, сколько раз оно находится в массиве - 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;
}

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

  1. Подключение стандартной библиотеки для работы с консолью
  2. Определение размера массива n
  3. Объявление переменных:
    • i - счётчик для циклов
    • num[n] - массив для ввода чисел
    • max - переменная для хранения максимального числа
    • qty - переменная для хранения количества максимального числа
  4. Ввод чисел в массив с помощью цикла for и функции scanf
  5. Инициализация переменной max значением первого элемента массива
  6. Первый цикл for (от 1 до n-1) для поиска максимального числа
  7. Если текущий элемент массива больше max, то обновляем max
  8. Второй цикл for (от 0 до n-1) для подсчёта количества максимального числа
  9. Если текущий элемент массива равен max, то увеличиваем qty
  10. Вывод на экран максимального числа и количества его вхождений
  11. Возврат 0, означающий успешный завершение программы

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

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