c++ for循环的问题求解决

#include <stdio.h>
#include <ctype.h>
int main()
{
    int a,sum=0,i;
    char answer;
    scanf("%d",&a);
    for(;;)
    {
        i=a;
        i--;
        sum=sum+i;
        printf("you will choose 'y' or 'n':");
        scanf("%c",&answer);
        if(toupper(answer)=='N')
        break;
    }
    printf("%d",sum);
    return 0;
}

为什么无法得到

#include <stdio.h>
int main()
{
    int a,sum=0,i;
    scanf("%d",&a);
    for(i=a;i>=1;i--)
    sum+=i;
    printf("%d",sum);
    return 0;
}

的结果

你把第11行和第12行调换一下就好了,而且i一直等于a要把这句放在外面

你的i=a是在循环体里面的,每次循环开始i都会变为a的值把i=a放到循环体外就好

代码中,行与行之间的关系一定要想明白