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

请问为什么这样写不行?

#include <stdio.h>

int main()

{

    /* 小伙伴们:

           选择你们认为最合理的循环结构完成功能吧 */

    int sum = 0;  //定义计算结果变量sum

    int i = 1;    //定义循环数字变量i

    int flag = 1; //定义符号状态变量flag

    do

    {

        if (i%2!=0)

        {

            sum+=i;

        }

        else

        {

            sum-=i;

        }

        i++;

    }while(i<100);

    printf("sum=%d\n",sum);

    return 0;

   


提问者:qq_无意跌入你心海_0 2018-08-14 16:21

个回答

  • 夏小园
    2018-08-15 01:38:23
    已采纳

    首先题目要求是 1-2+3-4+5 这样就是有个变符号的形式。flag题目给的是1 在循环里面乘以-1就会不断的变成1和-1,在用i去乘以flag i在不断增加的过程中也会不断的变符号。所以应为 sum+=i*flatg; flag*=-1;就是他中间有个变符号的过程

  • ZR南山
    2018-08-23 03:46:21

    是不是因为你结尾少了一个“}“”  对应第一个“}”, 我看你少了一个}   你发的这个我试着写了一遍用这种逻辑去计算的话发现没问题呀

  • qq_无意跌入你心海_0
    2018-08-17 16:56:17

    已经可以了

  • 修裾欲溯空
    2018-08-14 19:26:58

    报的什么错?