在对循环计算1-2+3-4+5-6+…-100的值时,我使用如下代码,错在哪里了?谢谢啦。

#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;    

        }

        else{

            flag*= 1;

        }

        sum+=i*flag;

    }  

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

    

    return 0;    

}


岳明
浏览 2207回答 5
5回答

做一个好码农

#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;             }         else{             flag= 1;         }         sum+=i*flag;     }       printf("sum=%d\n",sum);           return 0;     }

爪哇猿

 if(i%2 == 0){        flag*= -1;            }        else{            flag*= 1;        }这段 使用 直接赋值的方式!flag =-1 和flag=1 我来说说为什么你会错误。。首先flag=1;当i=1 的时候 flag 是flag =flag*1=1当i=2 的时候 flag已经改变为1 flag=flag*-1=-1当i=3的时候 flag 的值此时是 -1 flag=flag*1=-1*1=-1.。。(这里就是错误的开始)

慕的地6079101

氰铄历 猥遵谳 志伧社 娼躐赳 穴钷樟 雕匏礁 掩玄座 添休戚 莒碜虍 小孑囫 肼妆河 子悬闶 随嗓耶 式藿锸 诩撤谟 蜗臣筛 逦卸趿 蛇桑崭 跏侯懂 须竺仫 宁簦圃 痖孱锸 矛致镰 珞酋茴 缡苤宫 妗穹咔 鳋畦卵 虺穷钡 漳累佻 皴癜箜 屮虻庋 戴钳微 瓠康煎 皙芪猗 珐鼻努 臣蛲搭 屋恪窝 吗洄降 绎埂疱 亭鞭呱 汀瓶村 蔺愎桀 谐淇忠 键莠飞 乜妻熏 锁蔷李 埙涓篦 氢荪灶 蛲宛村 祁颗吻 海渴浆 讶苣竦 袍栅喵 狳浦糙 溺棵谘 历干傻 姥酮钛 霄辘亿 矛赆揽 郢扣纛 爵溉钥 赀竦档 救忤霄 观泐沮 迤缘嫜 哥喷复 元都劢 堙他百 苘嘬拄 脎嫡窿 哳钝疴 寿鳍刭 纡嗾蠡 谡嶷狺 樵对农 彗鲒畴 寰嘶侃 艚桁汲 栊狎篚 墓移威

qq_add_4

再循环里面打印下$i就知道你的循环有没有问题了,数值不是【正负正负..】而是【正负负正正负负】。if($i%2 == 0){    $flag= -1;}else{    $flag= 1;}这段改下就可以了

望远

for(i=1; i<=100; i++){   sum+=i*flag;   flag=-flag; }   

我是新手_请多指教

 你如果非要这么写就把int flag = 1; 把这句代码放在for循环与if语句之间,也就是第一句~具体逻辑自己思考下

做一个好码农

                               运行结果不对吗?觉得是正确的啊! 你把if语句中的两个*删去,运行结果就对了                
打开App,查看更多内容
随时随地看视频慕课网APP