问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用C语言编写出 生成10个1到20不重复的随机数。直接完整程序就好了,谢谢

发布网友 发布时间:2022-04-20 17:50

我来回答

6个回答

懂视网 时间:2022-04-20 22:11



 
 10个随机数不相同


 

热心网友 时间:2022-04-20 19:19

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

//产生 [a,b] 区间的随机数
#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))

int main()
{
int i=0, j;
int buf[10];

//用当前时间初始化随机数种子
srand( (unsigned)time(NULL) );

while( i<10 )
{
int r = RANDOM(1,20); //生成[1-20]区间的随机数

bool has=false;
for( j=0; j<i; ++j )
{
if( buf[j] == r ) //如果这个数已经有了,就设置标志
{
has = true;
break;
}
}

//如果这个数还没出现过,则记录并输出
if( has==false )
{
buf[i++] = r;
printf( "%d ", r );
}
}
}追问有2个错误,不能运行诶、

追答这是带排序的版本:

#include
#include
#include

//产生 [a,b] 区间的随机数
#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))
#define N 10

void sort(int *x, int n)
{
int j, k, h, t;

for (h=n-1; h>0; h=k) /*循环到没有比较范围*/
{
for (j=0, k=0; j *(x+j+1)) /*大的放在后面,小的放到前面*/
{
t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交换*/
k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/
}
}
}
}

void main()
{
int i=0, j;
int buf[N];

//用当前时间初始化随机数种子
srand( (unsigned)time(NULL) );

//生成N个不相同的随机数
while( i<N )
{
int r = RANDOM(1,20); //生成[1-20]区间的随机数

bool has=false;
for( j=0; j<i; ++j )
{
if( buf[j] == r ) //如果这个数已经有了,就设置标志
{
has = true;
break;
}
}

//如果这个数还没出现过,则记录
if( has==false )
buf[i++] = r;
}

//排序
sort( buf, N );

//输出
for( i=0; i<N; ++i )
printf( "%d ", buf[i] );
}

热心网友 时间:2022-04-20 20:37

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10

void main()
{

int a[20]={0},b[N],x,i,j,t;
srand((unsigned int)time(NULL));
for (i=0;i<N;i++)
{
while(a[x=rand()%(20-2) + 2]);
{
b[i]=x;
a[x]=1;
//printf("%d ",b[i]);
}
}

for(i =0 ;i<N-1;i++)
{
for(j = i+1 ;j<N;j++)
{
if(b[i]>b[j])
{
t= b[i];
b[i] = b[j];
b[j] = t;
}
}
}

for(i =0 ;i<N;i++)
{
printf("%d ",b[i]);
}

}追问为什么生成了20个呢

追答你修给了注释的部分嘛?还是什么情况,我运行生成的是10个,在你那儿怎么生成了20个?

热心网友 时间:2022-04-20 22:12

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10],b[21]={0};
int i,j,t;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
while(1)
{
t =1+rand()%20;
if(b[t]==0)
{
a[i] =t;
b[t]=1;
break;
}
}
}
for(j=0;j<10;j++)
for(i=0;i<10-j-1;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("The sorted numbers :\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
}

热心网友 时间:2022-04-21 00:03

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10];
int i,j,t;
printf("Input 10 numbers :\n");
for(i=0;i<10;i++)
{
int a[i] = rand()%20;
scanf("%d",&a[i]);
printf("\n");
}
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("The sorted numbers :\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
getch();
}追问有错误,不能运行呀

热心网友 时间:2022-04-21 02:11

红烧uushehehehsvsvvsvsbbb
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
RDL是什么意思 报税软件是什么意思 某公司的财务报表管理软件属于 报表系统指的是什么? 怎么玩真三最好?我是新手选什么英雄最好? 真三新手玩什么英雄好? 最近玩魔兽真三,想请问一下高手,初期用什么英雄最好,新手攻略 新手玩真三选什么英雄好啊 ...离泡还有一段距离的地方好几片红,红的地方又疼又痒的,怎么办... 眼角出了好多小水疱.医生说是疱疹.怎么办 公积金贷款开发商要提供什么材料 车子被蹭成这种程度抛光就可以了吗? 车子蹭了,抛光可以恢复吗? 车子一点刮擦了洗车店能抛光吗 我的车被刮以后抛光后还能看出被刮留下的痕迹 再怎么修复可以好看点 汽车刮擦了,需要喷漆还是抛光自己应该怎么判断呢? 汽车有小刮痕,抛光可以处理吗 汽车刮痕怎么处理?要注意哪些问题 车刮了一点点怎么处理? 汽车怎么抛光 车又刮了,不知道怎么能不能自己抛光 北京中泰创业能源投资有限公司怎么样? 北京国经中泰资本投资中心(有限合伙)怎么样? 中泰股份未来发展前景?中泰股份投资价值高吗?中泰股份公告,是利空还是利好? 笔记本电脑哪个牌子的性价比高 如何从1到20之间取不重复的10个随机数 你们看过哪些精彩的微小说? 推荐好看的微小说。 有没有什么感人的微小说…… 华为怎么下载软件 什么是铝模?铝模板有哪些优点、哪些缺点?铝模的施工原理是什么? 铝膜车衣的铝膜是什么材料? 铝膜是什么? 镀铝膜、铝箔膜有什么区别? pp铝膜和pet铝膜有什么区别 cpp 镀铝膜是什么 李斯到底是个什么样的人?真是那么自私吗? 铝膜是什么垃圾 什么保鲜袋可以延长蔬菜水果的保鲜时间? 保单号ACHCY是那个保险公司单号 嵌入式消毒柜门关不上是什么原因 pzb保单号开头是什么保险公司 情人节回送薄荷糖代表的是什么 五月二十日送薄荷糖是什么意思 什么是运输普通发票图样 工程款增值税专用发票图片 梦见在池塘里挖出金器和玉器 求正确粘贴发票示意图 梦见水田里摸到很多金子 单据和发票有什么区别?