c语言求数组中元素出现次数最多的一个中的一个小问题点。
#include<stdio.h>#include<stdlib.h>
#include<string.h>
int main(){
int t;
while(scanf("%d",&t)!=EOF){
getchar();
int *p,i,j,a={0},max,max_=0;
p=(int*)malloc(t*(sizeof(int)));
memset(p,0,t);
for(i=0;i<t;i++){
scanf("%d",&p);
}
for(i=0;i<t;i++){
a]++;
}
max=a;
for(i=0;i<20;i++){
if(a>max){
max_=i;
}
}
printf("%d\n",max_);
free(p);
}
return 0;
}
上述代码这样输出会有问题,但在max_=i;上多加一个max=a;即可输入正确,为什么? max = a;
a > max;
max表示已知的最大值, a > max 说明出现了比max更大的值, max不是应该更新成新的最大值吗
页:
[1]