很简单的一个C语言题目,帮忙看看错在哪里,输出时候S=0
用C语言编写一个程序,计算数列2/1,3/2,5/3,8/5,13/8…前n项之和#include"stdio.h"fun(intn){inta=2,b=1,c,k;do...
用C语言编写一个程序,计算数列2/1,3/2,5/3,8/5,13/8…前n项之和
#include"stdio.h"
fun(int n)
{int a=2,b=1,c,k;
double s=0.0;
for(k=1;k<=n;k++)
{s=s+1.0*a/b;c=a;a+=b;b=c;}
return(s);}
void main()
{int n;
printf("请输入整数n:");
scanf("%d",&n);
printf("数列前%d项的和为%lf\n",n,fun(n));} 展开
#include"stdio.h"
fun(int n)
{int a=2,b=1,c,k;
double s=0.0;
for(k=1;k<=n;k++)
{s=s+1.0*a/b;c=a;a+=b;b=c;}
return(s);}
void main()
{int n;
printf("请输入整数n:");
scanf("%d",&n);
printf("数列前%d项的和为%lf\n",n,fun(n));} 展开
3个回答
展开全部
#include <stdio.h>
double fun(int n)
{
int a=2,b=1,c,k;
double s=0.0;
for(k=1;k<=n;k++)
{s=s+1.0*a/b;c=a;a+=b;b=c;}
return(s);
}
void main()
{
int n;
printf("请输入整数n:");
scanf("%d",&n);
printf("数列前%d项的和为%lf\n",n,fun(n));
}
我输入5的时候,得到s=8.3916667
应该没错的啊
double fun(int n)
{
int a=2,b=1,c,k;
double s=0.0;
for(k=1;k<=n;k++)
{s=s+1.0*a/b;c=a;a+=b;b=c;}
return(s);
}
void main()
{
int n;
printf("请输入整数n:");
scanf("%d",&n);
printf("数列前%d项的和为%lf\n",n,fun(n));
}
我输入5的时候,得到s=8.3916667
应该没错的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的自定义函数的返回值默认是int,int型数据直接%lf输出得出的都是0.000000,这和浮点型数据存储方式有关。
改为float fun(int n)应该就好了。
改为float fun(int n)应该就好了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun函数前面加double
不加double,默认的是int类型,加double就对了
不加double,默认的是int类型,加double就对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询