C语言, 统计数组每个元素个数怎么做?
用C语言产生100个随机数,作为一个数组,然后统计该数组中每个元素出现的次数,并输出,请教这个程序该如何写、...
用C语言产生100个随机数,作为一个数组,然后统计该数组中每个元素出现的次数,并输出,请教这个程序该如何写、
展开
1个回答
展开全部
我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。
#include<stdio.h>
#include<stdlib.h>
main()
{
int a[100],b[100],c[100]={0},i,j;
//a数组放随机数
//b数组放是否被统计的标志,1未统计,0已统计
//c数组放对应a数组中随机数出现的次数
for(i=0;i<100;i++)
{
a[i]=rand()%21;//产生0~20的随机数
b[i]=1;//未统计
printf("%5d",a[i]); //打印a数组的值
if((i+1)%10==0) //一行打印10个数
printf("\n");
}
printf("\n");
for(i=0;i<100;i++)
{
if(b[i]) //若a[i]未被统计
{
c[i]++; //次数加1
for(j=i+1;j<100;j++)//从下一个开始向后查找
if(a[j]==a[i]) //若相等
{
c[i]++; //则次数增1
b[j]=0; //改为已统计
}
}
}
for(i=0,j=1;i<100;i++)
{
if(c[i]) //若某随机数出现了,则打印其值和出现次数
printf("%3d:%5d 出现 %3d次\n",j++,a[i],c[i]);
}
}
#include<stdio.h>
#include<stdlib.h>
main()
{
int a[100],b[100],c[100]={0},i,j;
//a数组放随机数
//b数组放是否被统计的标志,1未统计,0已统计
//c数组放对应a数组中随机数出现的次数
for(i=0;i<100;i++)
{
a[i]=rand()%21;//产生0~20的随机数
b[i]=1;//未统计
printf("%5d",a[i]); //打印a数组的值
if((i+1)%10==0) //一行打印10个数
printf("\n");
}
printf("\n");
for(i=0;i<100;i++)
{
if(b[i]) //若a[i]未被统计
{
c[i]++; //次数加1
for(j=i+1;j<100;j++)//从下一个开始向后查找
if(a[j]==a[i]) //若相等
{
c[i]++; //则次数增1
b[j]=0; //改为已统计
}
}
}
for(i=0,j=1;i<100;i++)
{
if(c[i]) //若某随机数出现了,则打印其值和出现次数
printf("%3d:%5d 出现 %3d次\n",j++,a[i],c[i]);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询