去掉ELSE之后,如果a<b的话还会执行下一个for语句,就相当于把你所算的结果乘以2,如果删掉else和第二个for循环结果也是对的~
if(a>b)
{
t=b;
b=a;
a=t;
for(i=a;i<=b;i++)
{
sum=sum+i;
}
}
这段代码是在a>b的情况下执行的。
而
for(i=a;i<=b;i++)
{
sum=sum+i;
}
这段代码无论a和b哪个大哪个小都会执行。如果是a>b的话,sum会是你认为的值的两倍,因为求和求了两次。
而a<b,if块的语句就不执行,求和求一次,那样就是你认为的值。
建议你以后遇到此类问题可以用单步执行来看看程序是怎样运行的,还有个小错误最后的getch()后面少了个 ;