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++)
{
}
}
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:
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.
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.
break digunakan untuk melompat keluar dari pernyataan while, tukar statement, do{}while, for{} Yu opera
Tidak digunakan untuk melompat keluar dari if/else