c计算1-3+5-7+...+99-101

//1-3+5-7+...+99-101=1+(-1)3+5+(-1)7

#include"stdio.h"
int main()
{

    int a,b,n,sum=0;
for(n=1,b=1;n<=51;++n)
{
    if(b%2==0)
    {
      a=-1;
    }
    else;
    a=1;
    sum=sum+(a*(2*n-1));
    b++;//拿来判断a什么时候等于-1 
} // b为偶数时a=-1 
printf("%d",sum);  
    return 0;
}

//逻辑是对的,自己演算了一部分结果也是对的,可代码输出为2601,问题应该出在了if()?a并未被赋值-1?
不知道哪出问题了,

else后面的分号什么鬼

12行else后面多了个分号啊。加了分号以后,a=1每次都会执行,导致结果是1+3+...+101了

错误原因 else 后面加了 “;”,应该是 else {a = 1} 。代码写的可以再规范些就不会出这个错误了。