c语言编程题及答案3
- 格式:doc
- 大小:27.00 KB
- 文档页数:6
C语言编程题及答案(三)
猜数游戏
在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序瞧上去有些难度,但就是如果
按下列要求循序渐进地编程实现,会发现其实这个程序就是很容易实现的。那么,现在就开始吧,
先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……
程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出
提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数就是大(Too high)还就是小(Too low),然后结
束游戏。要求每次运行程序时机器所“想”的数不能都一样。
程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,
并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提
示,告诉人所猜的数就是太大还就是太小,直到人猜对为止。
程序3 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,
并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提
示,告诉人所猜的数就是太大还就是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游
戏。
程序4 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出
人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,
告诉人所猜的数就是太大还就是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本
次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。
【思考题】 如果用scanf输入用户猜测的数据时,如果用户不小心输入了非法字符,如字符
a,那么程序运行就会出错,用什么方法可以避免这样的错误发生呢?请读者编写程序验证方法
的有效性。
答案:
1、
#include
#include
#include
srand(time(NULL)); /*用标准库函数srand()为函数rand()设置随机数种子*/
magic = rand() % 100 + 1;
printf("Please guess a magic number:");
scanf("%d", &guess);
if (guess > magic)
{
printf("Wrong!Too high!\n");
}
else if (guess < magic)
{
printf("Wrong!Too low!\n");
}
else
{
printf("Right!\n");
printf("The number is:%d\n", magic);
}
}
2、
#include
#include
#include
srand(time(NULL));
magic = rand() % 100 + 1;
counter = 0;
do
{
printf("Please guess a magic number:");
scanf("%d", &guess);
counter ++;
if (guess > magic)
{
printf("Wrong!Too high!\n");
}
else if (guess < magic)
{
printf("Wrong!Too low!\n");
}
}while (guess != magic); /*直到人猜对为止*/
printf("Right!\n");
printf("counter = %d\n", counter);
}
3、
#include
#include
#include
main()
{
int magic; /*计算机"想"的数*/
int guess; /*人猜的数*/
int counter; /*记录人猜的次数*/
srand(time(NULL));
magic = rand() % 100 + 1;
counter = 0;
do
{
printf("Please guess a magic number:");
scanf("%d", &guess);
counter ++;
if (guess > magic)
{
printf("Wrong!Too high!\n");
}
else if (guess < magic)
{
printf("Wrong!Too low!\n");
}
else
{
printf("Right!\n");
}
}while ((guess!=magic) && (counter<10)); /*猜不对且未超过10次时继续猜*/
printf("counter = %d\n", counter);
}
4、
#include
#include
#include
main()
{
int magic; /*计算机"想"的数*/
int guess; /*人猜的数*/
int counter; /*记录人猜的次数*/
char reply; /*用户输入的回答*/
srand(time(NULL));
do
{
magic = rand() % 100 + 1;
counter = 0;
do
{
printf("Please guess a magic number:");
scanf("%d", &guess);
counter ++;
if (guess > magic)
{
printf("Wrong!Too high!\n");
}
else if (guess < magic)
{
printf("Wrong!Too low!\n");
}
else
{
printf("Right!\n");
}
}while ((guess!=magic) && (counter<10));
/*猜不对且未超过10次时继续猜*/
printf("counter = %d\n", counter);
printf("Do you want to continue(Y/N or y/n)?");
scanf("%1s", &reply);
}while ((reply == 'Y') || (reply == 'y'));
printf("The game is over!\n");
}