问答详情
源自:4-10 循环结构之三种循环比较

为什么这个算出的结果是sum=0?想不明白

#include <stdio.h>
int main()
{
    int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
    int flag = 1; //定义符号状态变量flag
   
  
    for(i=1;i<=100;i++)
    {
        if(i%2==0)
        {
            flag=(-1)*flag;
        }
        sum=sum+i*flag;
    } 
    printf("sum=%d\n",sum);
   
    return 0;   
}

提问者:浅浅时光8 2016-04-01 18:51

个回答

  • mango2
    2016-04-02 19:25:39

    反了~ 而且  if(i%2==0) 应该是  if(i%2>=0)

    #include <stdio.h>
    int main()
    {
        int sum = 0;  //定义计算结果变量sum
        int i = 1;    //定义循环数字变量i
        int flag = 1; //定义符号状态变量flag
       
     
        for(i=1;i<=100;i++)
        {
            if(i%2>=0)
            {
            sum+=i*flag;
            }
            flag*=-1;
        }
        printf("sum=%d\n",sum);
       
        return 0;   
    }

  • 浅浅时光8
    2016-04-01 19:01:37

    我明白了