#include <stdio.h>
#include <time.h>
#include <assert.h>
#define MAX_NUMBER 100
#define MIN_NUMBER 0
#define MAX_TIMES 10
int MakeNumber(void);
void GuessNumber (const int number);
int IsValidNumber (const int number);
int IsRight (const int number,const int guess);
int main()
{
int number;
char reply;
srand(time(NULL));
do {
number = MakeNumber();
GuessNumber(number);
printf("Do you want to continue(Y/N or y/n)\n");
scanf(" %c",&reply);
}while (reply =='Y'||reply =='y');
return 0;
}
int MakeNumber (void)
{
int randnumber;
randnumber = (rand()%(MAX_NUMBER-MIN_NUMBER+1))+MIN_NUMBER;
return randnumber;
}
int IsValidNumber (const int number)
{
if(number>=MIN_NUMBER||number<=MAX_NUMBER)
return 1;
else
return 0;
}
void GuessNumber(const int number)
{
int guess;
int count = 0;
int right = 0;
int ret;
do{
printf("Try %d\n",++count);
ret = scanf("%d",&guess);
while(ret!=1||!IsValidNumber(guess))
{
printf("PLEASE INPUT RIGHT FORMAT!\n");
while (getchar()!='\n');
printf("Try %d",++count);
ret =scanf("%d",&guess);
}
right = IsRight (number,guess);
}while (!right&&count <= MAX_NUMBER);
if (right!=1)
printf("Congratulations!You are fucking niubi!");
else
printf("Mission failed after %d attemps.",MAX_TIMES);
}
int IsRight(const int guess,const int number)
{
if (guess>number)
{
printf("WRONG!Too big!");
return 1;
}
else if(guess<number)
{
printf("WRONG!Too small!");
return 1;
}
else return 0;
}
一: 我在编译运行的时候发现这个程序不能将猜数字的次数每次往上加一,我感觉我编的对啊,++count不就可以做到这个功能吗
二: 我输入的数字大于MAX_NUMBER程序没有警告啊,为什么呢
三 :我把头文件<assert.h>删除为什么程序显示错误呢,难道头文件<time.h>不起作用吗