提交要求:
1:邮件名称:学号后三位-题目编号-姓名-期中考试。例如:098-1-沈苗-期中考试
2:不用附件提交,直接写邮件,内容包括编程思路(写一段自己对题目的认识、思路、技术细节等)、源代码、运行结果分析和截图
题目:
1.编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。
编程思路:
1)计算机“想”一个1-100的数,则需要程序在运行的时候随机产生一个1-100之间的自然数,需要使用rand()和srand((int)time(0))函数;
2)猜数者“猜”数:则是用户每次输入的数字与随机产生的数进行比较,使用if..else..进行判断;
3) 猜数者只有10次机会,则需要使用for或while循环进行控制次数,本程序选择使用for循环;
4)另外程序结束和程序判断,需要引入return、break、couture等配合;
源代码:
#include <stdio.h> #include <stdlib.h> #include<time.h> /* *产生1-n之间的随机数 *注意:请配合srand((int)time(0));函数进行使用 */ int RandNum(n) { return rand()%n + 1; } int main() { srand((int)time(0)); //设置随机数种子 int num = RandNum(100),int_num,i,min=0,max=100; printf("%d\n",num); for(i=1;i<=10;i++) { printf("===============第%d次=======================\n",i); printf("请输入一个幸运数字:"); scanf("%d",&int_num); if (int_num >100 || int_num < 1) { printf("你输入的数为%d,不在1-100之间.请重试!\n",int_num); continue; }else if(int_num == num){ printf("恭喜你猜中幸运数字,你猜中的幸运数字为:%d,第%d次猜中.\n",int_num,i); return 0; }else{ printf("你猜的幸运数字不正确,请重试!\n"); if(int_num > num ) { max=int_num; printf("幸运数字范围缩小为%d-%d!\n",min,max); }else{ min=int_num; printf("幸运数字范围缩小为%d-%d!\n",min,max); } continue; } } printf("你猜数字次数已达10次上限,很抱歉你未能猜中幸运数字,程序退出!\n"); return 0; }
运行结果分析:
该源码程序会在第一行提示当前为第几次输入,提示用户输入的幸运数字缩小的范围,最终用户正确猜中显示用户猜中的数字和当前次数,或者用户输入达到10次,程序遗憾退出!
输出截图: