实训报告
要求在开头输出欢迎词,直接用printf输出即可;
由于是多次游戏,最后要判断是否再一次游戏,这里无疑问是需要运用循环的,所以我们可以借用do while结构,先进行一次程序;
玩猜数字游戏关键就是随机数的生成,而且需要每次都不相同,就需要设置随机数种子srand((unsigned)time( NULL ) );,不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间;
如果不加入time函数就会出现重复:
在do while循环里在加入一个循环(可以调用函数写)来判断猜数并输出提示就可完成题目;
rand()%100;产生0-99的随机数。
高级点的,假如要产生16-59之间的数,
你可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况如法炮制!
#include "stdio.h"
#include "stdlib.h"
#include"time.h"
#define random()(rand()%x)
void guesstime(int,int);
void main()
{
char x;
int no,guessNo,i=0,guess;
printf("*****************************\n");
printf("*欢迎来玩猜数游戏,祝你好运!*\n");
printf("*****************************\n");
do
{
printf("请先设置猜数的范围0-?请输入一个整数:\n");
srand((int)time(0));
scanf("%d",&no);
guessNo=rand()%no;
guesstime(guessNo,no);
printf("您还要再玩一次吗?\n玩请输入Y,否则输入N \n");
getchar();
scanf("%c",&x);
printf(" ");
if(x=='N'){printf("游戏结束!\n");break;}
}while(x=='Y');
}
void guesstime(int guessNo,int no)
{
int guess,i=0;
while(1)
{
printf("请输入你猜这个0-%d的数是多少?\n",no);
scanf("%d",&guess);
if(guess<guessNo)printf("你猜的小了,请再猜\n");
if(guess>guessNo)printf("你猜的大了,请再猜\n");
i++;
if(guess==guessNo)
{
printf("恭喜您,您猜对了");
printf("正确数值为%d\n",guessNo);
printf("您一共猜测%d次\n",i);
break;
}
}
}