大佬过来看看怎么改,在这里谢谢了

原题:1. 主函数main已给出,请编写函数fun,它的功能是:计算并输出下列级数的和: S=1/(1*2)+1(2*3)+…+1/(n*(n+1)) 源程序: #include double fun(int n) { } int main() { double k; k=fun(10); printf("k=%f\n",k); return 0; } 运行结果: k=0.9090911. 主函数main已给出,请编写函数fun,它的功能是:计算并输出下列级数的和: S=1/(1*2)+1(2*3)+…+1/(n*(n+1)) 源程序: #include double fun(int n) { } int main() { double k; k=fun(10); printf("k=%f\n",k); return 0; } 运行结果: k=0.909091 然后我写的如下 #include double fun(int n) { int i; double s=0.0; for(i=1;i<=n;i++)["s=s+1.0/(i*(i+1));【s+=1.0/(i*(i+1));】return s;"] } int main() { double k; k=fun(10); printf("k=%f\n",k); return 0; }

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

你代码fun函数里面for循环里面s=s+ 这就重复了两次,而且return语句放在了for循环里面,应该放for循环外面

你的代码修改完如下:

#include <stdio.h>

double fun(int n)
{ 
	int i; 
	double s=0.0; 
	for(i=1;i<=n;i++)
	{
		s+=1.0/(i*(i+1));
	} 
	return s;
} 
int main() 
{ 
	double k;
	k=fun(10); 
	printf("k=%f\n",k); 
	return 0; 
}