初学者有问题,求大佬解答

Lpoker 2017-07-04 08:20:04
题目是1-1/2+1/3-1/4+1/5....-1/100
自己的思路是想把正数加一起,负数加一起,最后求总和算出结果,可是无奈打不出来。运行之后程序停止运行,这是为什么?然后同学给我写出了另一种答案,可是我读不懂,求大佬给我解答一下 。 (如果可以的话能把我的思路用c编译出来吗?)
下面是同学给我写的答案;
#include “stdio.h”
main()
{
int i,sign=1;
double sun=0;
for(i=1;i<=100;i++)
{
sun+=sign*1.0/i;
sign=-sign;
}
printf(“sum=%lf”,sum);
}
...全文
412 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sty_app 2017-09-22
  • 打赏
  • 举报
回复

int main()
{
	// 你同学的算法
	int sign = 1;
	double sum = 0;
	for(int i = 1; i <= 100; i++)
	{
		sum += sign * 1.0 / i;
		sign = -sign;
	}

	// 你的思路
	double sumPositive = 0; // 保存所有正数和
	double sumNegative = 0; // 保存所有负数和
	for(int i = 1; i <= 100; i++)
	{
		if(i % 2 == 0) // 负数
			sumNegative += 1.0 / i;
		if(i % 2 == 1) // 正数
			sumPositive += 1.0 / i;
	}
	double ans = sumPositive - sumNegative;

	return 0;
}
Big-Bee?? 2017-09-14
  • 打赏
  • 举报
回复
用迭加法的时候可以定义若x(迭加变量)为偶数则相减。
爬坡的小蜗牛 2017-07-06
  • 打赏
  • 举报
回复
赞同4楼的建议。
yelinCoder 2017-07-05
  • 打赏
  • 举报
回复
都没有代码,,怎么看,,,
赵4老师 2017-07-05
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
jena_wy 2017-07-05
  • 打赏
  • 举报
回复
你同学给你写的看不懂就去问你的同学啊!循环的时候,sun 一直累加,并且累加的时候每次把符号变下!
zhangyiant 2017-07-04
  • 打赏
  • 举报
回复
你是怎么写的?贴出来看看。 正负分开应该也是可以的,不过我觉得就这道题来说,用计算机处理,正负分开累加,有点绕弯子,反而不够直接。 你同学写的挺好。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧