问题描述
不知道哪里出错了,请大神提示下,看了好久了,感觉是括号的问题,但不知道怎么改
#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('%dn',result); delay(); if ((result == 7 )||(result == 11)){printf('Yn');break;} else if ((result == 2) || (result == 3)|| (result == 12)){printf('Nn');} elseprintf('Cn');for (i = 0;i<7;i++) {result1 = rollDice(); printf('%dn',result1); if (result1==result){printf('Yn');break;} else if ((result1!=result)&&(i==6))printf('Nn');} 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++) { }}
问题解答
回答1:第一个break使用不恰当,必须在循环里面才能使用break。第二个break就可以。建议你代码格式统一,有花括号就统一加花括号。代码改成这样:
int rollDice();void delay();int i,result = 0 ,result1 = 0;printf('Game Start!!!!n');result = rollDice();printf('%dn',result);delay();if ((result == 7 )||(result == 11)) {printf('Yn');}else if ((result == 2) || (result == 3)|| (result == 12)) {printf('Nn');}else {printf('Cn');} for (i = 0;i<7;i++){result1 = rollDice();printf('%dn',result1);if (result1==result) {printf('Yn');break;}else if ((result1!=result)&&(i==6)) printf('Nn'); } return 0;回答2:
break语句有两种用途:1.用于switch语句中,从中途退出switch语句。2.用于循环语句中,从循环体内直接退出当前循环。
题主的第一个break语句,这两种用法都不属于。
回答3:你的代码有三处问题:
1,main()函数无返回值类型
2,rollDice()、delay()这两个函数未事先声明就调用
3,break使用错误
以上三点任意一点都足以导致该程序直接报错。
另外,我劝你先打好语言基本功,然后多调试。
回答4:break用来在while语句,switch语句,do{}while,for{}豫剧里面,跳出
不用于在if/else里面跳出