C语言, 统计数组每个元素个数怎么做?
发布网友
发布时间:2022-04-28 12:08
我来回答
共1个回答
热心网友
时间:2023-10-08 22:56
我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。
#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]);
}
}
热心网友
时间:2023-10-08 22:56
我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。
#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]);
}
}