C中的计数器显示负数
Counter in C displaying negative number
我最近开始学习如何用 C 语言编程。我正在关注 class 在线,我们必须做的项目之一是创建一个游戏,让计算机随机生成一个两个常量之间的数字,并且用户应该以尽可能少的尝试找到它。
我正在尝试实现一种方法来计算每次程序通过循环时的尝试次数(将 +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;
}
语法错误:
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 函数的参数。因此,它属于函数名后的括号之间。
你增加了 nombre use 而不是 compteur Coups。
我最近开始学习如何用 C 语言编程。我正在关注 class 在线,我们必须做的项目之一是创建一个游戏,让计算机随机生成一个两个常量之间的数字,并且用户应该以尽可能少的尝试找到它。
我正在尝试实现一种方法来计算每次程序通过循环时的尝试次数(将 +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;
}
语法错误:
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 函数的参数。因此,它属于函数名后的括号之间。
你增加了 nombre use 而不是 compteur Coups。