编写程序,计算s=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+。。。+1/(1*2*3*...*n)的值。 说明:本题以10 为例!
编写程序,计算s=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+。。。+1/(1*2*3*...*n)的值。说明:本题以10为例!输出格式:s=1.12...
编写程序,计算s=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+。。。+1/(1*2*3*...*n)的值。 说明:本题以10 为例!
输出格式:s=1.123456
我的编写为:
maim()
{
float s;
s=0;
int t,i,a=1;
for(i=1;i<=10;i++)
a*=i;
t=1/a;
s+=t;
printf("s=%.6f\n",s);
}
算不出结果,大家看看错在哪?说的越细越好!! 展开
输出格式:s=1.123456
我的编写为:
maim()
{
float s;
s=0;
int t,i,a=1;
for(i=1;i<=10;i++)
a*=i;
t=1/a;
s+=t;
printf("s=%.6f\n",s);
}
算不出结果,大家看看错在哪?说的越细越好!! 展开
4个回答
展开全部
下面是你的代码修改后并能成功运行的代码
#include<stdio.h>
main()
{
float s,a=1.0,t;
s=0;
int i;
for(i=1;i<=10;i++)
{
a*=i;
t=1.0/a;
s+=t;
}
printf("s=%.6f\n",s);
getchar();
getchar();
}
错误1.maim改为 main
错误2.for循环没加花括号,没括号只循环for接下来的那句。
错误3.a、t不能是整型,至少t不能是整型,想想看,若a、t是整型会造成s也是整型,事实上t的值从来不会大于1,约等于后就得0了。
for(i=1;i<=10;i++)
a*=i;
t=1/a;
s+=t;
/*****************************************************/
下面是我编得程序
#include<stdio.h>
void ok(int n);//声明 求各项和函数
double njie(int n);//声明 求n! 函数
main()
{
int n;
printf("输入一个整数:\n");
scanf("%d",&n);
ok(n);
getchar();//DEV-C++编译器需要此行等待回车以使输出结果可见
getchar();//DEV-C++编译器需要此行等待回车以使输出结果可见
}
double njie(int n)//求n! 函数
{
int i,njie=1;
for(i=1;i<=n;i++)
njie=njie*i;
return njie;
}
void ok(int n)//求各项和函数
{
int i;
double sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/njie(i);
printf("结果为:%lf",sum);
}
该程序直到n=33都正确,n=34就开始乱码了,可能是溢出了。
#include<stdio.h>
main()
{
float s,a=1.0,t;
s=0;
int i;
for(i=1;i<=10;i++)
{
a*=i;
t=1.0/a;
s+=t;
}
printf("s=%.6f\n",s);
getchar();
getchar();
}
错误1.maim改为 main
错误2.for循环没加花括号,没括号只循环for接下来的那句。
错误3.a、t不能是整型,至少t不能是整型,想想看,若a、t是整型会造成s也是整型,事实上t的值从来不会大于1,约等于后就得0了。
for(i=1;i<=10;i++)
a*=i;
t=1/a;
s+=t;
/*****************************************************/
下面是我编得程序
#include<stdio.h>
void ok(int n);//声明 求各项和函数
double njie(int n);//声明 求n! 函数
main()
{
int n;
printf("输入一个整数:\n");
scanf("%d",&n);
ok(n);
getchar();//DEV-C++编译器需要此行等待回车以使输出结果可见
getchar();//DEV-C++编译器需要此行等待回车以使输出结果可见
}
double njie(int n)//求n! 函数
{
int i,njie=1;
for(i=1;i<=n;i++)
njie=njie*i;
return njie;
}
void ok(int n)//求各项和函数
{
int i;
double sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/njie(i);
printf("结果为:%lf",sum);
}
该程序直到n=33都正确,n=34就开始乱码了,可能是溢出了。
展开全部
第一行应该是main(),而不是maim,
其他的就是和楼上老兄一样,你应该把t声明成float。
其他的就是和楼上老兄一样,你应该把t声明成float。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t你定义为整数型 可是你又让它等于1/a,结果强制变整数了 把t定义为浮点型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询