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,那么程序运行就会出错,用什么方 法可以避 免 这样的错误 发生 呢 ? 请读 者编写程序验证 方 法的有效 性 。 第2 章 上机实验指导 ·137·答案: 1. #include #include #include /*将函数 time 所需要的头文件 time.h 包含到程序中*/ 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...