用C语言编一个程序,需要10个1-81之间的不能相同的随机数,注意随机数不能相同,怎么弄

高手赐教
感激不尽
一楼的那种方法还是有相同的随机数
一楼的那种方法还是有相同的随机数

你好!本人是菜鸟,希望帮到你~
刚才有点小错误,现在可以了..你可以修改下看20个数有无重复,我试过OK!
#include<time.h>
main()
{int i,j,z[10];
for(i=0;i<10;i++)
z[i]=rand()%81+1;
for(i=0;i<10;i++) /*利用一个二重循环使一维数组中所有元素都不同*/
{for(j=10;j<i;j--) /*我这里用的是冒泡法,你可以用下选择法弄哦^.^*/
if(z[i]==z[j])
z[j]=rand()%81+1;
}
printf("\narray[10]={");
for(i=0;i<10;i++)
{if(i<9)printf("%d,",z[i]);
else printf("%d}",z[i]);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-05
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
srand(time(NULL));
int i;
int a[10];

for(i=0;i<10;i++)
{
a[i]=rand()%81+1;
printf("%d ",a[i]);
}
return 0;
}
第2个回答  2009-04-05
#include<stdio.h>
main()
{
int a[],i[],j;/* a保存随机数数组,i记录是否重复,j循环变量 */
for(j=1;j<=81;j++)
i[j] = 0;
for(j=0;j<10;j++)
{
do
{
a[j] = rand()%81+1;
}
while(i[a[j]] == 0)
i[a[j]] = 1;
}
}

因为我没有装TC,请楼主自行调试。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网