|
本帖最后由 981013 于 2014-1-17 12:40 编辑
这句错了,简单来说是“;”引起的编译器的“断句”问题。
if的作用是:若后面()中的条件成立,则执行后面紧跟的代码,直到if语句结束。
如果像以上这样写的话不会被当做错误,但当后面遇到else时就会遇到else匹配不到if的错误,
原因是if以及后面紧跟的代码被视为一条语句,称为if语句,if语句中可以出现else
C的语句以“;”结束,因此按以上写法if语句已经结束了,编译器将下面的语句当做另一句语句处理,
随后遇见else,就认为else在if语句外,就会认为是错误。
if(或else)后若不得不跟含分号的代码,则应用{}把所有想让其加入if语句的代码括起来。
以下是修改后的代码:
- include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a,b,c,f;
- scanf("%d %d",&a,&b);
- if(a>b)
- {
- c=a;
- f=b;
- printf("%d %d\n",c,f);
- }
- else
- printf("%d %d\n",b,a);
- system("pause");
- return 0;
- }
复制代码
|
|