很简单的C语言求和问题 我晕了

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:37:06
很简单的程序,是这样:
#include<stdio.h>
void main()
{
int m,n,i;
int * a,* b;
long int total=0;
printf("Input two nums:\n");
scanf("%d%d",&m,&n);
if (m>n)
{a=&n,b=&m;};
else
{a=&m,b=&n;};//②
for (i=*a;i<=*b;i++;)
total+=i;
printf("the result is:%ld\n",total);
}
问题:②处的if else语句我加了{}(习惯加上的,我知道可以不加),编译总说misplaced else,直到我去掉{}才通过,这是怎么回事,还是此语句不支持语句组(不可能吧?)?

if (m>n) {a=&n,b=&m;}; 这里多了一个分号";",应改为{a=&n,b=&m;}

for (i=*a;i<=*b;i++;) 这里多了一个分号";",应改为for (i=*a;i<=*b;i++)

********************************************************

{a=&m,b=&n;};//② 末尾的分号是多余的,但在联系上下文看,这个分号无伤大雅,但是上面if语句中多余的分号导致if 与else分离,以后要注意,避免多余的分号。


if{

}else{

},在else前面打了;
如果使用语句组,
if{

}
后面不能有;

就你打出的程序而言,还有上面两位说到的问题。