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

自己写的代码,但是运行不显示结果?

任务:
使用循环计算1-2+3-4+5-6+…-100的值?
在编辑器中给出了三种循环体结构的部分代码,请选择合适的循环结构补全代码实现此功能。
运行结果为: sum=-50 

下面是我写的代码:
#include<stdio.h>

int main()
{
	int num = 1, sum = 0;
	for(; num <= 100; num++)
	{
		for(num=2; num%2==0 && num <= 100;num++) 
		//通过嵌套将所有的正偶数,变为负偶数 
		{
			num = 0-num;	
		}
	sum += num;	
	}
	
	printf("sum=%d\n", sum);
	
	return 0;
 }


正在回答

3 回答

之前没仔细看,你代码有问题,不能用嵌套循环,里面for改成条件语句就可以了,没有输出的原因是因为你这是死循环,每次内层for出来都是num=-100,然后你应该就懂了为什么不能输出

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

慕粉1034431922 提问者

非常感谢!
2017-02-19 回复 有任何疑惑可以回复我~
#2

慕粉1034431922 提问者

非常感谢!虽然这个问题我还是没想明白。。。感觉不是死循环。内层num = 2时,执行完num = 0 - num, num转变为 -2,对-2自增,成为-1,不满足m%2 == 0,而且我记得负数好像不能取余。于是内循环结束。
2017-02-19 回复 有任何疑惑可以回复我~
#3

慕粉1034431922 提问者

原来负数可以取整。。。 -1%2 == 0且小于100,满足条件,继续执行内层代码,于是-1转为1, 1自增成为2,继续满足条件,于是num一直在2,-1,1这三个数循环。是这样吗?另外怎么改,能分享一下代码吗?
2017-02-19 回复 有任何疑惑可以回复我~
#4

琴书 回复 慕粉1034431922 提问者

#include "hello.h" #include <stdio.h> #include <stdlib.h> int main() { int num = 1, sum = 0; for (num; num <= 100; num++) { if (num % 2 == 0) { num = -num; sum += num; num = -num; } else sum += num; } printf("sum=%d\n", sum); system("pause"); return 0; }
2017-02-21 回复 有任何疑惑可以回复我~
查看1条回复

#include "hello.h"

#include <stdio.h>

#include <stdlib.h>

int main()

{

int num = 1, sum = 0;

for (num; num <= 100; num++)

{

if (num % 2 == 0)

{

num = -num;

sum += num;

num = -num;

}

else

sum += num;

}

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

system("pause");

return 0;

}

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

慕课网的输出有问题,建议百度c语言在线编译器

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

慕粉1034431922 提问者

我是在Dev-C++里面写的程序
2017-02-18 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

自己写的代码,但是运行不显示结果?

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