如何查找数字出现的频率?
我的代码:
#include <stdio.h>
int main(){
int count,same,n=7,a,max;
max = 0;
printf("Input Number : \n");
for(int i=1; i<=n; i++){
scanf("%d",a);
if(i == 1){
max = a;
}
else if(max < a){
max = a;
}
else if(same < a){
same = a;
count++;
}
}
printf("Max : %d\n",max);
printf("Same : %d line",count);
return0;
}
预期输出是:
1
1
2
3
4
5
6
Max : 6
Same : 2 line
我想统计我输入的数字的最大值以及如果我输入2同一行数字1,该数字出现的频率
最佳答案
这里有两个问题。首先是如何调用 scanf
:
scanf("%d",a);
%d
格式说明符需要 int
的地址,但您传递的是 int
>。将其更改为:
scanf("%d", &a);
其次,您没有正确跟踪最大数量的计数。您永远不会初始化same
,并且如果最大值发生变化,您也不会重置计数器。省略 same
并检查当前数字是否为最大值:
if(i == 1){
count = 1;
max = a;
}
else if(max < a){
max = a;
count = 1;
}
else if(max == a){
count++;
}
关于c语言中计算一个值出现的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395109/