循环语句表示s=1-3+5-7...(总共n个数)

s=1-3+5-7... 总共n个数,用C语言循环语句表示
#include
int main()
{
int n,i,flag=1,sum=0;
printf("input n=");
scanf("%d",&n);
for(i=1;i<=n;i+=2)
{ sum+=i*flag;
flag=-flag;
}
printf("sum=%d\n",sum);
}
为什么我一直写不对啊


    int sum=0,flag=1,n;
    scanf("%d",&n);
    for (int i = 1; i <= n*2; i+=2)
    {
        sum+=i*flag;
        flag*=-1;
    }
    printf("%d\n",sum);

改动处见注释,供参考:

#include<stdio.h>
int main()
{
    int n,i,flag=1,sum=0;
    printf("input n=");
    scanf("%d",&n);
    for(i=1;i<=n;i++) //for(i=1;i<=n;i+=2)修改
    {
        sum+=(i*2-1)*flag;//修改
        flag=-flag;
    }
    printf("sum=%d\n",sum);
    return 0;
}

有什么不对