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

哪里错了?

#include <stdio.h>

int main()

   int sum = 0;  

    int i = 1; 

    int flag = 1; 

for(i=1;i<=100;i++)

    {

    sum=sum+i*(-1)^(i+1) ;   

    }  

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

    return 0;    

}

正在回答

4 回答

学长“慕粉3717182”用的更简单了

#include <stdio.h>

int main()

{

    int i = 1;

    int sum = 0;

    for(i=1;i<=100;i++)

    {

        sum += i%2?i:-i;

    }

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

    return 0;

}


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

 sum=sum+i*(-1)^(i+1) ;  到目前没学过。"^" 不理解。

我把你的for执行代码块换成

 if(i%2==0)

            {

                sum-=i;

            }

            else

            {

             sum+=i;

            }   

结果-50。


我知道你是想简便的写出来,三目运算法带入for循环。

#include <stdio.h>

int main()

    int sum = 0;  

    int i = 1; 

    for(i=1;i<=100;i++)

    {

        sum=i%2>0?sum+i:sum-i;    

    }

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

    return 0;    

}

一样简单而且之前学过

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

sum=sum+i*(-1)^(i+1) ;   这句里面你用了异或,异或的优先级在“*”后面,所以你这里就是-i和i+1按位异或,结果就是符号位永远是1,即是负数,后面的运算,因为最后一位永远是1,无论什么逻辑,你这样肯定是错的。不知道你的思路是什么?

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

#include <stdio.h>

int main()

{

    int sum = 0;

    int i;

    for(i=1; i<=10; i++)

    {

    printf("%d\n", i);

    if( i == 3 )//是不是少了一个判断呢?

    goto LOOP;   //在这里使用goto语句

    }

    LOOP:printf("结束for循环了....");  //请选择合适位置添加标识符

    return 0;    

}


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

举报

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

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

进入课程

哪里错了?

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