怎么处理这样的问题?带入吗?

img


i+= 2,sum+=i;怎么理解呢?do while循环可以简单介绍一下吗?

i = 1 ; sum = 0; do{}while(条件) ,先运行,再判断。
i +=2; sum+=i; i=3;sum =3; while(i != n ); 此时 i=3 ,所以倒推 n != 3
i+=2 ==> i = 5; sum+=i ==> 3+5 = 8; while( i != n) ,此时 n != 5
i+=2==> i = 7, sum+=i==> 8+7 = 15,while(i != n), 此时sum =15应该跳出循环,所以可以得到 n = 7.

键盘输入n = 时, sum = 15;

#include <stdio.h>

int main() { 
    int i = 1, sum = 0, n; // 定义变量i初始化值为1,变量sum初始化值为0,变量n,默认值为0
    scanf("%d", &n); // 键盘输入n的值
    do{
        i+=2; // i = i + 2;
        sum+=i; // sum = sum + i;
    }while(i != n); // 判断i不等于n时,继续执行do循环体,当i等于n时,结束循环
    printf("%d", sum); // 输出sum的值
    
    // 例如:键盘输入n的值为7,i = 1 + 2 = 3,sum = 0 + 3 = 3,判断3!=7 为true,继续执行do循环
    // 此时i = 3,sum = 3 , i = 3 + 2 = 5,sum = 3 + 5 = 8, 判断5!=7 为true,继续执行do循环
    // 此时i = 5,sum = 6 , i = 5 + 2 = 7,sum = 8 + 7 = 15, 判断7!=7 为false,,结束循环,输出sum=15
    return 0;
}

看程序计算的是什么,这个循环计算的是,3+5+7+9+......+n