【问题标题】:Counter in C displaying negative numberC中的计数器显示负数
【发布时间】:2023-04-10 21:15:01
【问题描述】:

我最近开始学习如何用 C 编程。我在网上上课,我们要做的一个项目是创建一个游戏,让计算机在两个常数之间产生一个随机数,然后用户应该尽可能少地尝试找到它。

我正在尝试实现一种方法来计算每次程序通过循环时的尝试次数(向计数器添加 +1),但我得到的只是每当我执行程序时尝试次数为 -472188416你可以在这里看到Program after execution。我不明白为什么......提前谢谢你。

这是我制作的代码:

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

int main(){
    const int MIN = 1;
    int nombreMystere = 0, nombreUser = 0, continuerPartie = 1, MAX = 0, Niveau = 0;
    srand(time(NULL));
    int compteurCoups = 1;

do
{
    printf("Bienvenue qu jeu du numero mystere\n");
    printf("Trouvez le bon numero en un minimum de coups\n\n");
    printf("Tapez 1 pour le mode facile\n");
    printf("Tapez 2 pour le mode moyen\n");
    printf("tapez 3 pour le mode difficile\n");


switch(Niveau)
{
    case 1:
    MAX = 10;
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

    case 2:
    MAX = 100;
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

    case 3:
    MAX = 1000;
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

    default:
        printf("Veuillez introduire un nombre entre 1 et 3 : ");
        scanf("%d", &Niveau);
    break;
}
do
    {
 printf("Quel est le nombre ? ");

    scanf("%d", &nombreUser);
    
    if (nombreUser > nombreMystere)
        {
            printf("C'est moins !\n");
            nombreUser++;
        }
    else if (nombreUser < nombreMystere)
       {
            printf("C'est plus !\n");
            nombreUser++;
       }
    else
        {
            printf("Bravo, vous avez trouve le nombre mystere en %d essais !!!\n"), compteurCoups;
            printf("Voulez vous rejouer ?\n");
            printf("Si oui appuyer sur 1, sinon si vous voulez quitter appuyez sur 2\n");
            scanf("%d", &continuerPartie);
            printf("\n");
        }
    }while (nombreUser != nombreMystere);
}while (continuerPartie == 1);


return 0;
}

【问题讨论】:

    标签: c loops counter


    【解决方案1】:

    您增加了 nombreuser 而不是 compteurCoups。

    【讨论】:

    • 我也想看看“(rand() % (MAX - MIN + 1)) + MIN”。
    【解决方案2】:

    这是一个语法错误:

    printf("Bravo, vous avez trouve le nombre mystere en %d essais !!!\n"), compteurCoups;
    

    应该是

    printf("Bravo, vous avez trouve le nombre mystere en %d essais !!!\n", compteurCoups);
    

    不要忘记“compteurCoups”是 printf 函数的参数。因此,它属于函数名后面的括号之间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 2013-07-21
      • 2015-05-27
      相关资源
      最近更新 更多