/*随机给出50个数,计算其中出现次数最多的数是哪个,出现过多少次,频率是多少,最少 是哪个数,出现过多少次,频率是多少,用函数做.*/ #include <stdio.h> #include <stdlib.h> #include <time.h>
void stat(int num[]);
void main() { int num[50],i=0,k=0; static int count[10]; srand((unsigned)time(NULL)); for(i=0;i<50;i++) { num[i]=rand()*10/RAND_MAX; printf("%d\t",num[i]); }
for(i=0;i<50;i++)//50个数 { for(k=0;k<10;k++)//0-9的值 { if(num[i]==k)//如果num[0]=0;那么负责记数的变量count[0]就加一个; count[k]++; } } stat(count);//将记随机数出现次数的数组传入函数; }
void stat(int num[]) { static int i,max,min; max=min=num[0]; //将数组第一个值赋给记出现最多的变量和记出现最少的变量; for(i=1;i<10;i++) { if(max<num[i]) max=num[i];//判断哪个数出现的次数最多 if(min>num[i]) min=num[i];//判断哪个数出现的次数最少 } printf("出现次数最多的数字是:"); for(i=0;i<10;i++) { if(max==num[i]) //以上都还能明白,这里有点转不过弯来,请解释一下,谢谢 printf("%d\t",i); } printf("\n次数是:%d\n频率是:%d%%\n",max,max*2); printf("出现次数最少的数字是:"); for(i=0;i<10;i++) { if(min==num[i]) printf("%d\t",i); } printf("\n次数是:%d\n频率是:%d%%\n",min,min*2); }