不知道哪裡出錯了,請大神提示下,看了好久了,感覺是括號的問題,但不知道怎麼改
#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++)
{
}
}
第一個break使用不恰當,必須在循環裡面才能使用break。第二個break就可以。建議你程式碼格式統一,有花括號就統一加花括號。程式碼改成這樣:
break語句有兩種用途:
1.用於switch語句中,從中途退出switch語句。
2.用於循環語句中,從循環體內直接退出當前循環。
題主的第一個break語句,這兩種用法都不屬於。
你的程式碼有三個問題:
1,main()函數無回傳值型別
2,rollDice()、delay()這兩個函數未事先宣告就呼叫
3,break使用錯誤
以上三點任意一點都足以導致該程式直接報錯。
另外,我勸你先打好語言基本功,然後多調試。
break用來在while語句,switch語句,do{}while,for{}豫劇裡面,跳出
不用於在if/else裡面跳出