#include <stdio.h>

void saidai_num(int kosuu, int data[], int *max, int *max_num) {
    *max = data[0];       // 最初の要素を最大値の初期値とする
    *max_num = 1;         // 最大値の個数を1で初期化
    
    // 1番目からkosuu番目まで比較
    for (int i = 1; i <= kosuu; i++) {
        if (data[i] > *max) {
            // 新しい最大値が見つかった場合
            *max = data[i];
            *max_num = 1; // 個数を1にリセット
        } else if (data[i] == *max) {
            // 現在の最大値と同じ値が見つかった場合
            *max_num = *max_num + 1;
        }
    }
}

int main() {
    int data1[] = {10, 15, 30, 15, 30, 30, 7};
    int max1, num1;
    saidai_num(6, data1, &max1, &num1);
    
    int data2[] = {10, 10, 10, 10, 10, 10};
    int max2, num2;
    saidai_num(5, data2, &max2, &num2);

    printf("配列1 -> 最大値: %d, 個数: %d\n", max1, num1); // 期待値: 30, 3
    printf("配列2 -> 最大値: %d, 個数: %d\n", max2, num2); // 期待値: 10, 6

    return 0;
}