C 猜谜游戏问题

C 猜谜游戏问题,c,if-statement,while-loop,C,If Statement,While Loop,我从youtube视频中得到的猜谜游戏,想问一些我没有得到的问题。一个是什么意思的其他出格尔斯=1部分?第二,什么时候用一个等号,什么时候用2。最后但并非最不重要的一点是,是否有一种更简单的方法可以做到这一点,比如使用for语句 #include <stdio.h> #include <stdlib.h> int main(void) { int secretNumber= 5; int guess; int guessCount=0

我从youtube视频中得到的猜谜游戏,想问一些我没有得到的问题。一个是什么意思的其他出格尔斯=1部分?第二,什么时候用一个等号,什么时候用2。最后但并非最不重要的一点是,是否有一种更简单的方法可以做到这一点,比如使用for语句

#include <stdio.h>
#include <stdlib.h> 

int main(void) 
{
    int secretNumber= 5;   
    int guess; 
    int guessCount=0; 
    int guessLimit=3;
    int outofGuesses=0; 

    while(guess !=secretNumber && outofGuesses ==0)
    { 
        if(guessCount< guessLimit)
        { 
            printf("Enter a number between 1 and 10:"); 
            scanf("%d", &guess); 
            guessCount++; 
        } 
        else 
        { 
            outofGuesses =1; 
        } 
    } 
    if(outofGuesses==1) 
    { 
        printf("You lost!");
    } 
    else
    { 
        printf("You win!");  
        return 0;   
    } 
} 
#包括
#包括
内部主(空)
{
int secretNumber=5;
智力猜测;
int猜测计数=0;
int猜限=3;
int-outofguesss=0;
while(guess!=secretNumber&&outofguesss==0)
{ 
if(猜测计数<猜测限制)
{ 
printf(“输入一个介于1和10之间的数字:”);
scanf(“%d”,猜测(&guess);
猜数++;
} 
其他的
{ 
出格数=1;
} 
} 
if(outofguesss==1)
{ 
printf(“你输了!”);
} 
其他的
{ 
printf(“你赢了!”);
返回0;
} 
} 

所有这些都是非常基本的,如果你不得不问,那么你应该找一位更好的老师/导师

=用于为变量赋值

==用于比较两个值

OutOfGuesss=1在猜不出时为该变量赋值1;它会导致“while”中的比较失败,程序流将其跳过到结束部分。

else OutOfGuesss=1部分的意义是什么? 它是一个标志或指示器。在本例中,1表示true,0表示false
什么时候用一个等号,什么时候用2? 正如@am121在另一个答案中指出的,使用
=
为变量赋值,并在检查两个值是否相等时使用
=


有没有像使用for语句这样更简单的方法? 首先,程序有一个bug。变量
guess
未初始化且行为未定义。例如,如果
guess
secretNumber
相同,则该人不玩就赢得了游戏。对于该程序,应为其分配任何不等于密码的值

使用for循环也是一样的:

#include <stdio.h>

int main(void) 
{
    int secretNumber= 5;   
    int guess = 0; //Some value not equal to secretNumber 
    int guessLimit=3;

    for(int guessCount=1; guess!=secretNumber && guessCount<=guessLimit; guessCount++){ 
        printf("Enter a number between 1 and 10:"); 
        scanf("%d", &guess);             
    } 

    if(guess == secretNumber)
    { 
        printf("You win!");
    } 
    else
    {
        printf("You lost!");
    }
} 
#包括
内部主(空)
{
int secretNumber=5;
int guess=0;//某些值不等于secretNumber
int猜限=3;

for(int guessCount=1;guess!=secretNumber&&guessCount当outofguesss变为1时while循环会发生什么情况?一个=符号表示“将此值存储在内存位置,并在=符号前面加上名称。两个=符号表示”==的右边是否等于==的左边?在本例中,当进行类似于int的猜测时,您是否必须始终将其设置为某个值?感谢您回答并显示for语句。您不必立即将其设置为某个值。但在使用之前必须对其进行设置。在问题中,它在被使用之前就已被使用ing分配了一个值。所以你不能确定它有什么值,它会导致未定义的行为