一、问题
猜数字游戏,系统随机生成1~100内一个数,操作者输入猜的数字,
若猜的数字大于随机数则输出“你猜的数字过大”,小于时同理,猜对时,
输出你胜利了并退出程序,最多猜五次,超过五次未猜对则输出你失败了
二、代码
while版和for没太大的区别
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int r=rand()%100;//产生随机数
int a[5];
int i=0;
while(i<5){
scanf("%d",&a[i]);
if(a[i]>r){
printf("您输入的数字过大\n");
i++;
}
else if(a[i]<r){
printf("您输入的数字过小\n");
i++;
}
else if(a[i]==r){
printf("猜对了!\n");
break;
}
}
if(i==5){
printf("猜数游戏失败\n");
}
return 0;
}
代码效果
三、tips
1.我会想到用switch case语句
但是要记得的是
case子句中的值必须是常量,不能是变量名或不确定的表达式值;
所以不能用这个语句
同一个switch语句,所有case子句中的常量值互不相同;
break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default
2. 刚开始的疑惑
为啥只能猜三次?
因为for里面有i++,if里面还有i++