C语言:求5/6+11/12+19/20+29/30+...的前N项的和,咋写?

要求:1)N由键盘输入,1~99999;输入错误要提示并退出。2)输出保留6位有效小数。3)测试有多组,输入0结束。... 要求:
1)N由键盘输入,1~99999;输入错误要提示并退出。
2)输出保留6位有效小数。
3)测试有多组,输入0结束。
展开
 我来答
cdyzxy
2020-09-06 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3649万
展开全部

分析:

1) 定义变量n,scanf("%d",&n); if ( n<0 || n>99999 ) { printf("输入错误。\n"); break; }

2)定义double类型累加和变量s,因为多项式中有分式,因此需要浮点类型变量保存结果

printf("%.6lf\n",s); 由于需要多次求不同n值的和,因此每次求和之前需要强制清0

3)多组测试,用循环结构,由于不关心循环次数,选用while循环:

while ( 1 ) { ...; if ( n==0 ) break; }

4)分析多项式:一般多项式求和采用for循环,利用循环变量i的取值计算相关多项式分子和分母

每项分子和分母都是整型数据,因此可以分别用整型变量求,分子fz,分母fm

分子规律是当前分母取值减1,分母规律i=0,1,2,3,...,n时取值2x3,3x4,4x5,...,(i+2)x(i+3)

注意,直接用整数相除需要将分子或分母中至少一个强制数据类型转换成浮点数,否则只能得到整型结果。

因此程序为:

#include<stdio.h>

void main() { int n,i,fz,fm; double s;

  while ( 1 ) { //无限循环,退出由循环体中条件语句完成

    printf("请输入N(1~99999):"); scanf("%d",&n); if ( n==0 ) break;

    if ( n<0 || n>99999 ) { printf("输入错误。\n"); break; }

    s=0; for ( i=0;i<n;i++ ) { fm=(i+2)*(i+3); fz=fm-1; s+=(double)fz/fm; }

    printf("%.6lf\n",s);

  }

  printf("程序结束运行。\n");

}

White_MouseYBZ
2020-09-06 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6474万
展开全部

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int i,k,t,n;

double s;

printf("Enter n(int 0<n<100000, n==0 end)...\nn=");

while(scanf("%d",&n)==1 && n>0 && n<100000){

for(s=(k=5)/6.0,t=6,i=1;i<n;s+=(k+=t)/(k+1.0),t+=2,i++);

printf("The SUM is %g\n",s);

}

if(n<0 || n>99999)

printf("Input error, exit...\n");

return 0;

}

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月光下的qq
2020-09-15 · 科技优质答主
月光下的qq
采纳数:392 获赞数:671

向TA提问 私信TA
展开全部

您好,很高兴回答您的问题。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2020-09-06 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
main()
{int n,i.t=0;
double s=0;
printf("请输入一个不超过5位的正整数:");
scanf("%d",&n);
if(n<1||nn99999)
{printf("输入错误!");return 0;}
for(i=0;i<n;i++)
s+=t+=6,(double)(t-1)/t;
printf("%f\n",s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式