不知道哪里出错了,请大神提示下,看了好久了,感觉是括号的问题,但不知道怎么改
#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
第一个break使用不恰当,必须在循环里面才能使用break。第二个break就可以。建议你代码格式统一,有花括号就统一加花括号。代码改成这样:
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
break语句有两种用途:
1.用于switch语句中,从中途退出switch语句。
2.用于循环语句中,从循环体内直接退出当前循环。
题主的第一个break语句,这两种用法都不属于。
phpcn_u15822017-06-22 11:55:37
你的代码有三处问题:
1,main()函数无返回值类型
2,rollDice()、delay()这两个函数未事先声明就调用
3,break使用错误
以上三点任意一点都足以导致该程序直接报错。
另外,我劝你先打好语言基本功,然后多调试。