求助C的随机数生成相关问题 高手赐教……

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:00:03
此程序遇到问题,请高手指出修改。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

void Welcome()
{
printf("**************************************************************\n");
printf("* 本程序将模拟扔骰子游戏,每局玩家和电脑各投一次,点数大者胜 *\n");
printf("* 首 句 玩 家 坐 庄 , 以 后 由 上 一 局 输 者 坐 庄 *\n");
printf("**************************************************************\n");
}

int GetComputerNum()
{
int ComputerNum;
srand(time(NULL));
ComputerNum=rand()%6+1;
return ComputerNum;
}

int GetPersonNum()
{
int PersonNum;
PersonNum=rand()%6+1;
return PersonNum;
}

void Compare()
{
int num1 = 0;int num2 = 0;char command = ' ';
printf("\n第一局:");
while(1)
{
if( num1 >= num2 )
{
printf("&

这跟scanf函数有关系
当scanf("%c",&command)为command赋值结束后,会留下一个回车符在缓冲区里面。
当你第二次执行scanf("%c",&command)后,command被赋值为'\n'了。
所以你最好在scanf(尤其是scanf("%c",&command),getchar()之类的单个字符输入函数)的前面加上一个语句
fflush(stdin);
它可以清空缓冲区,让程序得到正确答案。
顺便说一句,GetPersonNum()函数里面最好也加一个srand(time(NULL))

程序好长啊