为了账号安全,请及时绑定邮箱和手机立即绑定

给的前两个参考代码是不是有问题

虽然输出的结果都是-50  但是前两个代码表示的是不是2-3+4-5+……-101


正在回答

11 回答

#include<stdio.h>

int main()

{

    int sum=0;

    int i=1;

    int flag=1;

    while(i<=100)

    {

        i++;

        sum+=i*flag;

        flag*=-1;

    }

    printf("%d",sum);

    return 0;

}

/*如果i++ 在 sum+=i*flag; 中i 的值是2,那么循环过程是,2-3+4-5+6-7+8.。。。。。。

问题来了,当 i=100时,while(i<=100)判断成立,那么 sum+=i*flag;中 i 的值就是101,再

乘以flag.这时slag为负1.因为每逢 i 的值为奇数时flag中都为负1.那么101为负值。-101.

你写一个程序。计算2-3+4-5+6-7+8-9。。。。。直到100。计算结果。再减去101.

我可以告诉你结果。也是-50.

1 回复 有任何疑惑可以回复我~
#1

qq_悲伤可以自行处理_03427709 提问者

flag= -2就不一样了(⊙o⊙)…
2016-08-10 回复 有任何疑惑可以回复我~
#2

我改名字了 回复 qq_悲伤可以自行处理_03427709 提问者

真心谢谢你的提问,我之前笔记中记的是,while 的结果为,第一次不符合要求时,输出这个结果。给你解答完,笔记要改一改了
2016-08-10 回复 有任何疑惑可以回复我~
#3

qq_悲伤可以自行处理_03427709 提问者 回复 我改名字了

一直分不清while do-while for 都是跟着感觉走的 其实break那节也有个疑问 但是是关于for的用法
2016-08-10 回复 有任何疑惑可以回复我~
#4

我改名字了 回复 qq_悲伤可以自行处理_03427709 提问者

学完第六章,再换一个账号,重新学一遍。再不行再来一遍。每次都有新知识。
2016-08-10 回复 有任何疑惑可以回复我~
#5

我改名字了 回复 qq_悲伤可以自行处理_03427709 提问者

学完六章。换账号再来一次,每次都有新东西
2016-08-10 回复 有任何疑惑可以回复我~
#6

我改名字了

注意!!!!!! 采纳答案为错误示范。正确的在下面呢。 注意!!!!!! 关于采纳答案的解释,在最最最最最下方点击第二页中。 希望别再误导同学了!
2016-08-26 回复 有任何疑惑可以回复我~
查看3条回复

从最后两个程序中 i++位置变化 结果也不同。

得出结论。虽然本题中两种算法得出结果都是-50

但是 结果是偶然的。

老师之所以这么做 ,我想他是故意的,没有问题就不会有答案 。

谢谢提问者,找出了问题  !!!!

0 回复 有任何疑惑可以回复我~

#include<stdio.h>

int main()

{

    int sum=0;

    int i=1;

    int flag=1;

    while(i<=10)

    {

        i++;

        sum+=i*flag;

        flag*=-2;

    printf("i=%d\t",i);

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

    }

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

    return 0;

}


0 回复 有任何疑惑可以回复我~

#include<stdio.h>

int main()

{

    int sum=0;

    int i=1;

    int flag=1;

    while(i<=10)

    {

        sum+=i*flag;

        flag*=-2;

        i++;

    printf("i=%d\t",i);

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

    }

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

    return 0;

}


0 回复 有任何疑惑可以回复我~
#1

qq_悲伤可以自行处理_03427709 提问者

学霸!
2016-08-10 回复 有任何疑惑可以回复我~

#include<stdio.h>

int main()

{

    int sum=0;

    int i=1;

    int flag=1;

    while(i<=100)

    {

        i++;

        sum+=i*flag;

        flag*=-1;

    printf("i=%d\t",i);

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

    }

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

    return 0;

}


0 回复 有任何疑惑可以回复我~

#include<stdio.h>

int main()

{

    int sum=0;

    int i=1;

    int flag=1;

    while(i<=100)

    {

        sum+=i*flag;

        flag*=-1;

        i++;

    printf("i=%d\t",i);

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

    }

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

    return 0;

}


0 回复 有任何疑惑可以回复我~

我想明白了你们看看对不对。


0 回复 有任何疑惑可以回复我~

我在vs2013调试了下,结果都是-50,我和你考虑的一样,我觉得代码i++;应该放在flag*=-1;后。

0 回复 有任何疑惑可以回复我~
#1

qq_悲伤可以自行处理_03427709 提问者

多谢(^_^)∠※
2016-08-10 回复 有任何疑惑可以回复我~

57a9558e000143c505000203.jpg

57a9558f000192d203700424.jpg

凑三个字

0 回复 有任何疑惑可以回复我~

这是哪期的?额。。

0 回复 有任何疑惑可以回复我~
#1

qq_悲伤可以自行处理_03427709 提问者

发截图了​(*^__^*)
2016-08-09 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消
C语言入门
  • 参与学习       926209    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

给的前两个参考代码是不是有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信