cari

Rumah  >  Soal Jawab  >  teks badan

c++ - Penyataan rehat bahasa C melaporkan ralat

Saya tidak tahu di mana silap saya, tolong beri saya petunjuk saya telah melihatnya untuk masa yang lama dan saya rasa ia adalah masalah dengan tanda kurung, tetapi saya tidak tahu bagaimana untuk menukarnya

#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_lee2757 hari yang lalu1525

membalas semua(4)saya akan balas

  • 巴扎黑

    巴扎黑2017-06-22 11:55:37

    Rehat pertama digunakan secara tidak sesuai mesti digunakan di dalam gelung. Rehat kedua ok. Adalah disyorkan supaya format kod anda konsisten, dan jika terdapat pendakap kerinting, tambahkannya secara seragam. Tukar kod kepada ini:

    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;

    balas
    0
  • 三叔

    三叔2017-06-22 11:55:37

    Pernyataan putus mempunyai dua kegunaan:
    1 Digunakan dalam pernyataan suis untuk keluar dari pernyataan suis di tengah-tengah.
    2 Digunakan dalam pernyataan gelung untuk keluar dari gelung semasa terus dari badan gelung.

    Pernyataan pecah pertama dalam soalan tidak tergolong dalam kedua-dua penggunaan ini.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-22 11:55:37

    Terdapat tiga masalah dengan kod anda:

    1, fungsi main() tidak mempunyai jenis nilai pulangan

    2 Dua fungsi rollDice() dan delay() dipanggil tanpa pengisytiharan awal

    3, memecahkan ralat penggunaan

    Mana-mana daripada tiga perkara di atas sudah cukup untuk menyebabkan program melaporkan ralat secara langsung.

    Selain itu, saya menasihati anda untuk menguasai kemahiran bahasa asas dahulu, dan kemudian nyahpepijat lagi.

    balas
    0
  • 迷茫

    迷茫2017-06-22 11:55:37

    break digunakan untuk melompat keluar dari pernyataan while, tukar statement, do{}while, for{} Yu opera

    Tidak digunakan untuk melompat keluar dari if/else

    balas
    0
  • Batalbalas