c语言编程题及答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 <> /*将函数time所需要的头文件包含到程序中*/

main()

{

int magic; /*计算机"想"的数*/

int guess; /*人猜的数*/

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);

}

}

#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");

}

}while (guess != magic); /*直到人猜对为止*/

printf("Right!\n");

printf("counter = %d\n", counter);

}

#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);

相关文档
最新文档