如何在C语言中产生50个100到200间的随机整数啊?谢谢大家,您的回答对我真的很有帮助!

产生的随机数字不相同怎么处理啊!用rand()产生的数字有重复的啊!

产生有重复的50数字

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

void main(void)
{
int i, j;
int array[50];

for (i=0; i<50; i++)
{
array[i] = rand() % 100 + 100;
}

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

printf("\n");
}

产生不重复的50位数字

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

void main(void)
{
int i, j;
int array[50];

for (i=0; i<50; i++)
{
AA:
array[i] = rand() % 100 + 100;
for (j=0; j<i; j++)
{
if (array[i] == array[j])
{
goto AA;
}
}
}

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

printf("\n");
}追问

“AA:”和“goto AA”是什么意思啊!谢谢您的回答!

追答

goto语句,跳转的意思,就是从gotoAA那句直接跳转到AA:句,重新执行下面语句(PS:也就是说若产生随机数相等,则重新产生随机数),你好好看看书,这是基本C语法

追问

我学的C语言没有这个语句!马上要考二级啦,嘿嘿,受教啦!谢谢啊!

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-09
rand(产生随机数)
表头文件: #include<stdlib.h>

定义函数 :int rand(void)

函数说明 :
因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。

#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<5;i++) //5ge
{
j=100+(int)(200.0*rand()/(RAND_MAX+1.0)); // 100-200
printf(" %d ",j);
}
}追问

能不能帮我解释下这两句是什么意思啊:“srand((int)time(0));”和“j=100+(int)(200.0*rand()/(RAND_MAX+1.0)); // 100-200”
为什么“j=100+(int)(200.0*rand()/(RAND_MAX+1.0)); // 100-200”这句命令执行后产生了大于200的数字!
谢谢你的回答!

追答

srand 那个是初始化 随机数种子的,以保证每次使用rand()函数所产生的随机数不同。这里取当前时间作为种子。

第二个 就是借助 rand()产生随机数,RAND_MAX表示编译系统定义的能够产生的最大随机数。也就是用 rand()能够产生的最大值。

把200变成 100 吧,上面这里写的有问题。

第2个回答  2011-09-09
int a[50];
int i ;
for(i = 0; i<50;i++){
a[i]= rand()%100
}
这样就可以了
不过产生的50个数可能重复,不知道你的要求是否允许追问

就是不知道怎样使随机产生的数字不同啊!

追答

#include
#include
void main()
{ int a[50];
int i ;
int j = 0;
int k;
int count;
while(j<50){
count = rand()%100;
for(k = 0;k<j; k++){
if(count == a[k]){
break;
}
}
if(k==j){
a[j]= count;
j++;
}
}
return;

}

第3个回答  2022-05-13
/*生成一个从X到Y之间的随机整数*/

unsigned int indivrand(unsigned int x,unsigned int y)
{
unsigned int result;

result = rand()%(y-x) +x;
return result;
}
第4个回答  2011-09-09
rand产生的是假随机数,若要不一样,那只能保存起来做判断了!

如何在C语言中产生50个100到200间的随机整数啊?谢谢大家,您的回答对我...
int array[50];for (i=0; i<50; i++){ array[i] = rand() % 100 + 100;} for (i=0; i<50; i++){ printf("%d ", array[i]);} printf("\\n");} 产生不重复的50位数字 include <stdio.h> include <stdlib.h> void main(void){ int i, j;int array[50];for ...

编一个c语言 产生50个100到200之间的随机整数,找出其中的常数,并将其...
include<stdio.h>#include#include<stdlib.h>int main(){int i,j,k,RAND[50];srand(time(0));\/\/设计随机数种子 for(i = 0; i<50 ; i++)\/\/产生随机数 {RAND[i] = rand()%200;if(RAND[i] <= 100){RAND[i] += 100;}}for(i = 0; i<50 ; i++)\/\/排序 {for(j = i...

c语言,编程产生50个100~200之间的随机整数,找出其中的素数,并将其按...
i,j,k,t;for(i=0;i<50;i++){\/\/找素数并存入xprintf("%4d",a[i]);if((a[i]&1)==0)continue;for(t=0,k=3;k*k<=a[i];k+=2)if(a[i]%k==0)break;if(k*k>a[i])x[t++]=a[i];

C语言编写输出100到200之间的全部素数并统计个数?
首先定义一个素数判断函数fun,int fun(int x),在里面如果x能被2整除,return 0,然后进入一个以3为初值,步长为2,条件测试表达式为<sqrt(x)的for循环,如果x能被i(循环变量)整除,则也是return 0,最后,添加返回语句return 1。然后在main函数中建立一个以100为初始值,测试条件为<200,步长为...

随机产生50个100到200 的整数放到数组a中,并输出(每行10个数)是按系 ...
随机产生50个100到200 的整数放到数组a中,并输出(每行10个数)是按系统时间随机产生的数  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览9 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 系统时间 随机 数组 搜索资料 本地图片 图片链接 代码 提交回答 ...

c语言输出100到200之间的素数
首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。先找出来100到200的所有整数,都为i 用i去对除了1和它本身以外的数求余。正确的代码:include<stdio.h> int main(){ int conut = 0;int i = 0;for(i=100; i<=...

在C语言中对求100~200之间的全部素数这个程序的解释
第一句话中的i是上面程序中的循环变量,它用来描述从2到K的值的变化,如果在循环的过程中,产生了m%i的值为0的情况,则跳出循环,因此,如果i的值>=k+1,则表示在2到k之间没有数m的任何一个约数,那么这个数m就是一个素数,同时让用来计数的n加1.下面一个if是用来控制输出格式的,即每行输10个元素...

C语言 求100-200中的全部素数 有几个地方没看明白 帮我解释下
如果17可以整除4,那它的商也是可以被17整除,它的商肯定是不超过4的整数。所以我们判断一个数n是否质数,只要用2-这个数的开方去除这个数就可以了。include<math.h> main(){ int m,k,i,n=0;for(m=101;m<=200;m=m+2){ if(n%10==0)printf("\\n");k=sqrt(m);for(i=2;i<=k;...

如何用C语言随机生成100到200之间的十个数?
include<stdlib.h> int a[10];for(i=0;i<10;i++){ a[i]=rand()%100+100; \/\/先随机数 除以100取余数,然后加100 }

用C语言 求100到200之间的全部素数(每行输出10个)。 先谢谢了, 最好能...
for(m=100;m<=200;m++)\/*从100循环到200逐个测试是否为素数*\/ { leap=1; \/*初始化标志变量leap为1,首先假定m是素数*\/ k=sqrt(m+1); \/*求得m+1的平方根,并保存在变量 k 中*\/ for(i=2;i<=k;i++) \/*用i(从2到'm+1的平方根')逐个去除m,以测试是否为素数*\/ if(m%i==...

相似回答