C语言,程式调用怎么老是出现相同的结果呀

/*有已知一个三位数:232 (可自由设置)
然后从0-9中随机抽取三个数组成一个三位数,如果这个三位数与已知的三位数相同则继续从0-9中随机抽取三个数组成另一组三位数并输出,一共输出10组(输出数量可自由设置)如果不同则返回重新抽取
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
int i=0,a,b;
scanf("%d",&a);
if(a<100||a>1000)
{
printf("Error!!\n");
return 0;
}
srand(time(NULL));
while (i<10)
{
printf(".");//给点提示,不然程序看上去没有反应,感觉上死掉了
if (rand()%900+100==a)
{
printf("\n[%d]%d\n",i,a);
i++;
}
//等一秒时间太久,等50-100毫秒就可以
//sleep(1);//猜中了才改变自变量,这个可能需要很多次循环,所以最好要释放一下CPU

}
getch();//这里就是相当于pause的功能,等待按键再退出
return 0;
}

这段程式由网友编程,但运行的时候,为什么输出的结果都是一样的?!哪里写错了吗?

应该不一样的,你数一下那些..的个数,每次运行都不同的

你的意思是这样吗?

给定一个3位数,自己组成一个,如果组成的数相同:输出10个不同的数,退出;如果组成的数不同,则继续组成直到相同为止。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
int i=0,a,b;
scanf("%d",&a);
if(a<100||a>1000)
{
printf("Error!!\n");
return 0;
}
srand(time(NULL));

b = rand()%900+100;
while(b!=a) b = rand()%900+100;

while(i<10)
{
b = rand()%900+100;
if (b!=a)
{
printf("%d\n",b);
i++;
}
}
getch();
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-27
如果这个三位数与已知的三位数相同则继续从0-9中随机抽取三个数组成另一组三位数并输出,一共输出10组(输出数量可自由设置)如果不同则返回重新抽取
while (i<10)
{
printf(".");//给点提示,不然程序看上去没有反应,感觉上死掉了
if (rand()%900+100==a)
{
printf("\n[%d]%d\n",i,a);
i++;
}
注意你的if语句,如果随机和a相等,则输出,i++;
如果不相等,当然没输出了,i也不加,再次循环。直到和a相等,才有输出

相关了解……

你可能感兴趣的内容

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