当前位置: 代码迷 >> C语言 >> [求助]怎么给一个随即数列赋值给一个一维数组啊?
  详细解决方案

[求助]怎么给一个随即数列赋值给一个一维数组啊?

热度:346   发布时间:2006-09-07 23:23:46.0
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void sum(int *a,int *count);
void main()
{
int i;
int a[20],count[11];
srand((unsigned)time(NULL));
for(i=0;i<20;i++)
{
a[i]=rand()%11;
}
for(i=0;i<11;i++)
count[i]=0;
for(i=0;i<20;i++)
{
printf("%d ",a[i]);
}
printf("\n");
sum(a,count);
for(i=0;i<11;i++)
printf("数字%d出现%d次\n",i,count[i]);

}
void sum(int* a,int *count)
{
int i;
for(i=0;i<20;i++)
count[a[i]]++;
}

[此贴子已经被作者于2006-9-7 23:30:05编辑过]


----------------解决方案--------------------------------------------------------
我就是晕了啊,呵呵,想象的,我想出现1,就累加一次,出现2就累加2,这个不对~~~
----------------解决方案--------------------------------------------------------
21楼的兄弟,谢谢你了,
----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-9-7 22:00:39的发言:

#include <stdio.h>
#include<time.h>
#include<stdlib.h>

#define N 11
int main()
{
int i,t,a[N];
srand(time(NULL));
for(i=0;i<N;i++)
{
a[i]=0;
}
printf("产生的序列是:");
for(i=1;i<=20;i++)
{

t=rand()%11;
a[t]++; //这一步是利用数组元素来统计和该元素下标相等的随机数.所以我就不需要另外调用函数
printf("%-3d",t);
}
printf("\n");
for(i=0;i<N;i++)
{
printf("出现%d的个数是:%d\n",i,a[i]);
}
printf("\n");
return(0);
}


----------------解决方案--------------------------------------------------------
题目要求滴丫,米办法,谢谢你们费心啦
----------------解决方案--------------------------------------------------------

刚少了个数字10的统计,上边的帖子重新编辑过了,你再看看


----------------解决方案--------------------------------------------------------

我假设的出现的那个数字为5,那么当a【i】==5为真的时候。count就自动加!注意count的初始值是为0的!


----------------解决方案--------------------------------------------------------
当然那个5,楼主可以自己在设置一个变量,在给那个变量赋一个值,就可以了!
----------------解决方案--------------------------------------------------------

题目要求的是21楼那样的效果丫~~


----------------解决方案--------------------------------------------------------
以下是引用ww84020209在2006-9-7 23:23:46的发言:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void sum(int *a,int *count);
void main()
{
int i;
int a[20],count[11];
srand((unsigned)time(NULL));
for(i=0;i<20;i++)
{
a[i]=rand()%11;
}
for(i=0;i<11;i++)
count[i]=0;
for(i=0;i<20;i++)
{
printf("%d ",a[i]);
}
printf("\n");
sum(a,count);
for(i=0;i<11;i++)
printf("数字%d出现%d次\n",i,count[i]);

}
void sum(int* a,int *count)
{
int i;
for(i=0;i<20;i++)
count[a[i]]++; //这里能注释一下吗?没见过这样写的啊

}


----------------解决方案--------------------------------------------------------

  相关解决方案