Maison > Questions et réponses > le corps du texte
Je ne sais pas où je me suis trompé, donnez-moi un indice. Je le regarde depuis longtemps et je pense que c'est un problème avec les supports, mais je ne sais pas comment le changer
.#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
int rollDice();
void delay();
int i,result = 0 ,result1 = 0;
printf("Game Start!!!!\n");
result = rollDice();
printf("%d\n",result);
delay();
if ((result == 7 )||(result == 11))
{printf("Y\n");break;}
else if ((result == 2) || (result == 3)|| (result == 12))
{printf("N\n");}
else
printf("C\n");
for (i = 0;i<7;i++)
{result1 = rollDice();
printf("%d\n",result1);
if (result1==result)
{printf("Y\n");break;}
else if ((result1!=result)&&(i==6))
printf("N\n");
}
return 0;
}
int rollDice()
{
void delay();
int a,b,c;
srand((unsigned)time(NULL));
a= rand()%6 + 1;
delay();
b= rand()%6 + 1;
c = a + b;
return c;
}
void delay()
{
long t;
for (t=0;t<50000000;t++)
{
}
}
巴扎黑2017-06-22 11:55:37
Le premier break est utilisé de manière inappropriée. Break doit être utilisé à l'intérieur d'une boucle. La deuxième pause est bien. Il est recommandé que le format de votre code soit cohérent et s'il y a des accolades, ajoutez-les uniformément. Changez le code comme suit :
int rollDice();
void delay();
int i,result = 0 ,result1 = 0;
printf("Game Start!!!!\n");
result = rollDice();
printf("%d\n",result);
delay();
if ((result == 7 )||(result == 11))
{printf("Y\n");}
else if ((result == 2) || (result == 3)|| (result == 12))
{printf("N\n");}
else
{printf("C\n");}
for (i = 0;i<7;i++)
{result1 = rollDice();
printf("%d\n",result1);
if (result1==result)
{printf("Y\n");break;}
else if ((result1!=result)&&(i==6))
printf("N\n");
}
return 0;
三叔2017-06-22 11:55:37
L'instruction break a deux utilisations :
1 Utilisée dans l'instruction switch pour quitter l'instruction switch à mi-chemin.
2. Utilisé dans les instructions de boucle pour quitter la boucle actuelle directement à partir du corps de la boucle.
La première instruction break de la question n'appartient pas à ces deux usages.
phpcn_u15822017-06-22 11:55:37
Il y a trois problèmes avec votre code :
1, la fonction main() n'a pas de type de valeur de retour
2. Les deux fonctions rollDice() et delay() sont appelées sans déclaration préalable
3, erreur d'utilisation de rupture
L'un des trois points ci-dessus suffit pour que le programme signale directement une erreur.
De plus, je vous conseille de maîtriser d'abord les compétences linguistiques de base, puis de déboguer davantage.
迷茫2017-06-22 11:55:37
break est utilisé pour sortir des instructions while, des instructions switch, do{}while, for{} Yu opera
Pas l'habitude de sortir de if/else