题目:先由计算机“想”一个1~100之间的数,然后请玩家猜,如果猜对了,则显示“Right!”,并赞美一番;否则显示“Wrong!”,并提升所猜的数是大了还是小了。每个数最多可以猜7次。如7次仍未猜中,则停止本次猜数游戏。每次运行程序可以反复猜多个数,直到玩家想退出时才结束。
代码实现如下:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
#define maxnumber 100
#define minnumber 1
#define maxtimes 7
int Makenumber(void);
void Guessnumber(int number);
int main()
{
int number,cont;
srand(time(NULL));//初始化随机数种子
do{
number = Makenumber();
Guessnumber(number);
printf("Continue this game ? (Y/N):");
cont = getchar();
cont = toupper(cont);//将小写的字母转换为大写的字母
while(getchar()!='\n')//读走回车符及其之前的所有无用字符
{
;
}
}while(cont!='N');
if(cont == 'N') printf("Game over!\n");
return 0;
}
int Makenumber(void)
{
int number;
number = (rand()%(maxnumber)) + minnumber;//产生一个1~100之间的随机数
assert(number >= minnumber&&number <= maxnumber);
return number;
}
void Guessnumber(int number)
{
int guess;
int times = 0;
assert(number >= minnumber&&number <= maxnumber);
do{
times++;
printf("Round %d:",times);
scanf("%d",&guess);
while(getchar()!='\n')
{
;
}
if(guess > number)
{
printf("Wrong! Too high.\n");
}
else if(guess < number)
{
printf("Wrong! Too low.\n");
}
}while(guess!=number&×<maxtimes);
if(guess == number)
{
printf("Congratulations! You are so cool!\n");
}
else
{
printf("Mission failed after %d attempts.\n",maxtimes);
}
}