#include <stdio.h>
void saidai_num(int kosuu, int data[], int *max, int *max_num);
int main(void) {
int kosuu1 = 6;
int data1[] = {10,15,30,15,30,30,7};
int max1 = 0;
int max_num1 = 0;
int kosuu2 = 5;
int data2[] = {10,10,10,10,10,10};
int max2 = 0;
int max_num2 = 0;
saidai_num(kosuu1,data1,&max1,&max_num1);
saidai_num(kosuu2,data2,&max2,&max_num2);
printf("配列1の最大値: %d ,個数: %d \n",max1
,max_num1
); printf("配列2の最大値: %d ,個数: %d \n",max2
,max_num2
);
return 0;
}
void saidai_num(int kosuu, int data[], int *max, int *max_num){
int counter = 0;
int count = 1;
*max = data[0];
for(counter = 0; counter<kosuu; counter++){
if(data[counter] > *max){
*max = data[counter];
count = 1;
}else if (data[counter] == *max){
count ++;
}
}
*max_num = count;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHNhaWRhaV9udW0oaW50IGtvc3V1LCBpbnQgZGF0YVtdLCBpbnQgKm1heCwgaW50ICptYXhfbnVtKTsKCmludCBtYWluKHZvaWQpIHsKCWludCBrb3N1dTEgPSA2OwoJaW50IGRhdGExW10gPSB7MTAsMTUsMzAsMTUsMzAsMzAsN307CglpbnQgbWF4MSA9IDA7CglpbnQgbWF4X251bTEgPSAwOwoJCglpbnQga29zdXUyID0gNTsKCWludCBkYXRhMltdID0gezEwLDEwLDEwLDEwLDEwLDEwfTsKCWludCBtYXgyID0gMDsKCWludCBtYXhfbnVtMiA9IDA7CgkKCXNhaWRhaV9udW0oa29zdXUxLGRhdGExLCZtYXgxLCZtYXhfbnVtMSk7CglzYWlkYWlfbnVtKGtvc3V1MixkYXRhMiwmbWF4MiwmbWF4X251bTIpOwoJCglwcmludGYoIumFjeWIl++8keOBruacgOWkp+WApO+8miAlZCAs5YCL5pWw77yaICVkIFxuIixtYXgxLG1heF9udW0xKTsKCXByaW50Zigi6YWN5YiX77yS44Gu5pyA5aSn5YCk77yaICVkICzlgIvmlbDvvJogJWQgXG4iLG1heDIsbWF4X251bTIpOwoJCglyZXR1cm4gMDsKfQp2b2lkIHNhaWRhaV9udW0oaW50IGtvc3V1LCBpbnQgZGF0YVtdLCBpbnQgKm1heCwgaW50ICptYXhfbnVtKXsKCWludCBjb3VudGVyID0gMDsKCWludCBjb3VudCA9IDE7CgkqbWF4ID0gZGF0YVswXTsKCQoJZm9yKGNvdW50ZXIgPSAwOyBjb3VudGVyPGtvc3V1OyBjb3VudGVyKyspewoJCWlmKGRhdGFbY291bnRlcl0gPiAqbWF4KXsKCQkJKm1heCA9IGRhdGFbY291bnRlcl07CgkJCWNvdW50ID0gMTsKCQl9ZWxzZSBpZiAoZGF0YVtjb3VudGVyXSA9PSAqbWF4KXsKCQkJY291bnQgKys7CgkJfQoJCQoJfQoJKm1heF9udW0gPSBjb3VudDsKfQo=