Maison  >  Questions et réponses  >  le corps du texte

c++ - L'instruction Break du langage C signale une erreur

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++)
    {

    }
}
ringa_leeringa_lee2700 Il y a quelques jours1484

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑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;

    répondre
    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.

    répondre
    0
  • phpcn_u1582

    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.

    répondre
    0
  • 迷茫

    迷茫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

    répondre
    0
  • Annulerrépondre