C 我的代码可以完美地编译和执行,但其中有一部分类似于在执行过程中不读取

C 我的代码可以完美地编译和执行,但其中有一部分类似于在执行过程中不读取,c,if-statement,while-loop,printf,C,If Statement,While Loop,Printf,我是编程的初学者,我懂一些Javascript和C语言,现在正在学习C语言。 我用C语言创建了一个简单的小游戏,名为“或多或少”(计算机选择一个随机数,你必须尽可能用最少的镜头来猜这个数),因此代码编译得非常好,除了显示祝贺部分和用于打印分数的for循环之外。就好像根本没人读。 我试图将for循环放入while循环中。但它只是废弃了代码。 我还删除了intargc,char*argv[],但它什么也没做。 我试图寻求帮助,但什么也没有 #include <stdio.h> #incl

我是编程的初学者,我懂一些Javascript和C语言,现在正在学习C语言。 我用C语言创建了一个简单的小游戏,名为“或多或少”(计算机选择一个随机数,你必须尽可能用最少的镜头来猜这个数),因此代码编译得非常好,除了显示祝贺部分和用于打印分数的for循环之外。就好像根本没人读。 我试图将for循环放入while循环中。但它只是废弃了代码。 我还删除了
intargc,char*argv[]
,但它什么也没做。 我试图寻求帮助,但什么也没有

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

int main (int argc, char *argv[])
{
    const int MAX = 100, MIN = 1;   
    int enteredNumber;
    int nombreMystere;
    int NombreDeCoups;
    //ask user for input (integer)
    printf("quel est le nombre? \n");
    scanf("%d", &enteredNumber);
    
    //generation of random number
    srand(time(NULL));//srand() must be used just once in any program
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;//rand() is a function to provide random number

//program loop. repeats until user finds number
while (enteredNumber != nombreMystere)
    {
        if (enteredNumber < nombreMystere)//if loop, that shows if it,s more or less to provide
        {
            printf("c'est plus! \n");
        }
        else if (enteredNumber > nombreMystere)
        {
            printf("c'est moins! \n");
        }
        else 
        {
            printf("Bravo! Vous avez trouve le bon nombre");
        }
        
        printf("quel est le nombre? \n"); //reprompts user until find the number
        scanf("%d", &enteredNumber);
        
    }
    for (NombreDeCoups = 0; enteredNumber =! nombreMystere; NombreDeCoups++) // loop to give score of how many tries user did
        {
            printf("en %d coups", &NombreDeCoups);
        }
    
}```
#包括
#包括
#包括
int main(int argc,char*argv[])
{
常数int MAX=100,MIN=1;
输入整数;
内特诺姆布雷迈斯特;
国际货币基金组织;
//请求用户输入(整数)
printf(“名称是什么?\n”);
scanf(“%d”,输入编号(&T);
//随机数的生成
srand(time(NULL));//srand()在任何程序中只能使用一次
nombreMystere=(rand()%(MAX-MIN+1))+MIN;//rand()是一个提供随机数的函数
//程序循环。重复,直到用户找到编号
while(enteredNumber!=nombreMystere)
{
if(enteredNumbernombreMystere)
{
printf(“c'est moins!\n”);
}
其他的
{
printf(“太棒了!你的名字是什么”);
}
printf(“quel est le nombre?\n”);//重新提示用户,直到找到号码为止
scanf(“%d”,输入编号(&T);
}
for(NombreDeCoups=0;enteredNumber=!nombreMystere;NombreDeCoups++)//循环给出用户尝试次数的分数
{
printf(“en%d政变”和NombreDeCoups);
}
}```
编译时出现警告:

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=]
   41 |             printf("en %d coups", &NombreDeCoups);
      |                        ~^         ~~~~~~~~~~~~~~
然后切换到

printf("en %d coups", NombreDeCoups);
这也是可疑的:

demo.c:39:29: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   39 |     for (NombreDeCoups = 0; enteredNumber =! nombreMystere; NombreDeCoups++)
你是说
enteredNumber!=nombreMystere
,但您不需要另一个循环来获得用户尝试次数的分数,只需在每次迭代结束时增加计数器,并在循环外打印结果:

int NombreDeCoups = 0;

while (enteredNumber != nombreMystere)
{
    ...
    NombreDeCoups++;
}
printf("en %d coups", NombreDeCoups);

首先,这是另一种说法

    else 
    {
        printf("Bravo! Vous avez trouve le bon nombre");
    }
从不在while循环中获取控件

while (enteredNumber != nombreMystere)
因为循环体仅在
enteredNumber
不等于
nombreMystere
时执行

您需要将else语句的子语句移到while循环之外

在这个for循环中,其目的不清楚

    for (NombreDeCoups = 0; enteredNumber =! nombreMystere; NombreDeCoups++) // loop to give score of how many tries user did

    {
        printf("en %d coups", &NombreDeCoups);
    }

在调用
printf

时,您使用了不正确的参数表达式
&NombreDeCoups
而不是
NombreDeCoups
,我不明白为什么需要在循环中打印分数,但我假设
=
应该是一个
=你知道
输入的号码!=nombreMystere
for
循环开始时不可能为真,否则您就不会在之前的
循环中退出
(条件相同)。谢谢。当我把NombreDeCoups++放在while循环中,并在外部打印时。现在可以用了