c语言 循环小游戏while

img


整蛊游戏:Doyouloveme1、题目分析:
1)输出Doyouloveme?
2)定义并输入s的值
3)判断s是否不为Y或y
如果成立:
输出Doyouloveme
输入s的值
不成立退出循环
3)输出!loveyoutoo!
求指点一下 为啥我这么定义是一个死循环 这个整蛊游戏的点在哪里求指点

你得有循环变量迭代
do ... while语句

#include<stdio.h>
void main(){
    int i =1;
    int s;
    int max = 5;//最多5遍,不正确就退出 
    do{
        printf("Do you love me?\n");
        scanf("%d",&s);
        if(s==89 || s==121){
            printf("I love you too!");
            break;
        }
        i++;
    }
    while(i<=max);
}

img

首先你要知道自己要实现什么功能
既然是小游戏,那应该是要无限循环直到对方输入y或Y
你这里有几个错误
首先是输入y是字符型,你scanf里的确实int型后面判断的时候自然出错
然后是break是跳出循环,无法实现循环到输入y的结果
并且没有继续输入s,也就是循环里第二个printf应该为scanf,break反而应该删掉

%d只能接收int类型的值呀,输入y要用%c接收
char s;
scanf("%c",&s);

因为你的循环里没有再输入s