#include <stdio.h>
void find_max_and_count(int size_minus_1, int *data, int *res_max, int *res_count) {
int max = data[0];
int count = 1;
for (int i = 1; i <= size_minus_1; i++) {
if (data[i] > max) {
max = data[i];
count = 1;
} else if (data[i] == max) {
count++;
}
}
*res_max = max;
*res_count = count;
}
int main() {
int data1[] = {10, 15, 30, 15, 30, 30, 7};
int size1_minus_1 = 6;
int max1, count1;
find_max_and_count(size1_minus_1, data1, &max1, &count1);
printf("配列1: 最大値 = %d, 個数 = %d\n", max1
, count1
);
int data2[] = {10, 10, 10, 10, 10, 10};
int size2_minus_1 = 5;
int max2, count2;
find_max_and_count(size2_minus_1, data2, &max2, &count2);
printf("配列2: 最大値 = %d, 個数 = %d\n", max2
, count2
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGZpbmRfbWF4X2FuZF9jb3VudChpbnQgc2l6ZV9taW51c18xLCBpbnQgKmRhdGEsIGludCAqcmVzX21heCwgaW50ICpyZXNfY291bnQpIHsKICAgIGludCBtYXggPSBkYXRhWzBdOyAKICAgIGludCBjb3VudCA9IDE7ICAgICAKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBzaXplX21pbnVzXzE7IGkrKykgewogICAgICAgIGlmIChkYXRhW2ldID4gbWF4KSB7CiAgICAgICAgICAgIG1heCA9IGRhdGFbaV07IAogICAgICAgICAgICBjb3VudCA9IDE7ICAgICAKICAgICAgICB9IGVsc2UgaWYgKGRhdGFbaV0gPT0gbWF4KSB7CiAgICAgICAgICAgIGNvdW50Kys7ICAgICAgIAogICAgICAgIH0KICAgIH0KCiAgICAqcmVzX21heCA9IG1heDsKICAgICpyZXNfY291bnQgPSBjb3VudDsKfQoKaW50IG1haW4oKSB7CiAgIAogICAgaW50IGRhdGExW10gPSB7MTAsIDE1LCAzMCwgMTUsIDMwLCAzMCwgN307CiAgICBpbnQgc2l6ZTFfbWludXNfMSA9IDY7IAogICAgaW50IG1heDEsIGNvdW50MTsKCiAgICBmaW5kX21heF9hbmRfY291bnQoc2l6ZTFfbWludXNfMSwgZGF0YTEsICZtYXgxLCAmY291bnQxKTsKICAgIHByaW50Zigi6YWN5YiXMTog5pyA5aSn5YCkID0gJWQsIOWAi+aVsCA9ICVkXG4iLCBtYXgxLCBjb3VudDEpOwoKICAgCiAgICBpbnQgZGF0YTJbXSA9IHsxMCwgMTAsIDEwLCAxMCwgMTAsIDEwfTsKICAgIGludCBzaXplMl9taW51c18xID0gNTsgCiAgICBpbnQgbWF4MiwgY291bnQyOwoKICAgIGZpbmRfbWF4X2FuZF9jb3VudChzaXplMl9taW51c18xLCBkYXRhMiwgJm1heDIsICZjb3VudDIpOwogICAgcHJpbnRmKCLphY3liJcyOiDmnIDlpKflgKQgPSAlZCwg5YCL5pWwID0gJWRcbiIsIG1heDIsIGNvdW50Mik7CgogICAgcmV0dXJuIDA7Cn0=