C语言编程:序列求和。

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,...求出这个数列的前n项之和。关于输入第一行为整数m,表示有m行数据需要处理。其后每行一个整数n,表... 有一分数序列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ... 求出这个数列的前n项之和。
关于输入
第一行为整数m,表示有m行数据需要处理。
其后每行一个整数n,表示求前n项之和。

关于输出
输出为m行,每行对应于所求的前n项和,精确到小数点后3位。

例子输入
3
20
10
5

例子输出
32.660
16.480
8.392

谢!
展开
 我来答
北纬year
2011-10-31 · TA获得超过186个赞
知道答主
回答量:126
采纳率:0%
帮助的人:27.2万
展开全部
不明白你的意思,我这个代码是算前20项之和,你说清楚点,我改下程序。

#include "Stdio.h"
#include "Conio.h"
main()
{
int i,t,n=20;
float a=2,b=1,s=0;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a;a=a+b;b=t;
}
printf("sum is %9.3f\n",s);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shmimy00
2011-10-31 · TA获得超过548个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:382万
展开全部
#include <stdio.h>
#define MAXSIZE 100

int main(void){
int m, j,k;
int num[MAXSIZE]={0};
printf("请输入要计算的行数:\n");
scanf("%d", &m);

for(j=0;j<m;j++){
printf("想要计算到哪项?请输入第%d行数值:\n", j+1);
scanf("%d",&num[j]);
}
for(k=0;k<m;k++){
int i;
double res = 0;
double temp1 = 1.0, temp2 = 2.0;
for(i = 0; i < num[k]; ++i){
res = res + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
printf("第%d行计算结果为%.3lf\n", k+1,res);

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就在黎明的起点
2011-10-31 · TA获得超过3685个赞
知道大有可为答主
回答量:1249
采纳率:78%
帮助的人:540万
展开全部
#include <stdio.h>
#include <stdlib.h>

int main(void){
int m;
scanf("%d", &m);
while(m--){
int n, i;
double res = 0;
double temp1 = 1.0, temp2 = 2.0;
scanf("%d", &n);
for(i = 0; i < n; ++i){
res = res + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
printf("%.3lf\n", res);
}
}
追问
不对……
是一次性输入输出,
但这样是输入一个就有了一个输出。
我编了一个也是这样……
追答
晕倒 这个感觉像是基础的ACM题目啊 如果是ACM题目 这种输出就可以了
如果你想一次性的输入输出 那可以用动态空间申请(malloc或者calloc)就可以了
#include
#include

int main(void){
int m, k = 0;
double *res = NULL;
scanf("%d", &m);
res = (double *)malloc(m*sizeof(double));
while(k < m){
int n, i;
double temp1 = 1.0, temp2 = 2.0;
scanf("%d", &n);
res[k] = 0;
for(i = 0; i < n; ++i){
res[k] = res[k] + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
++k;
}

for(k = 0; k < m; ++k)
printf("%.3lf\n", res[k]);

free(res);
return 0;
}

这个程序中是对输出做了缓冲,将输出缓冲到res数组中。res数组动态申请和释放。你也可以将输入缓冲,也同样通过动态申请来实现。你自己改改吧
另外 可以把计算部分单独写成函数。
再一个就是其实你可以缓存答案.先计算好所有的res值,到时候直接打印就好了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潇湘夜雨online
2011-11-02
知道答主
回答量:43
采纳率:0%
帮助的人:19.2万
展开全部
题目不清
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式