标题:一道数学题怎样用C语言描述出来
只看楼主
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
结帖率:60%
已结贴  问题点数:20 回复次数:10 
一道数学题怎样用C语言描述出来
计算下式的值:
S=1+X+X^2/2!+X^3/3!+……+X^n/n!
其中N的范围确定在<50 ,X=0.3


希望各位大侠看看,能帮忙把程序写出来,谢谢了!
搜索更多相关主题的帖子: C语言 描述 数学题 
2009-09-22 18:52
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:9 
#include "stdio.h"
void main()
{
float x=0.3,t=1,sum=1;
int   i,j,n,m,k;
printf("Please input the value of n:\n"); //确定n的大小
scanf("%d",&n);
for(i=1,m=1;i<=n;i++)
   {
    for(k=1;k<=i;k++)               //计算x的i次幂,或者直接用pow( , )函数
    {
      t=t*x;
    }
 
    for(j=1;j<=i;j++)           //计算i的阶乘
    {
    m=m*j;
    }
    sum=sum+t/m;           //最终结果
   }
printf("The result is %f.\n",sum);   //输出结果
}
不好意思,检查了一下,果然是有错误。不好意思,见笑了。呵呵。
#include "stdio.h"
void main()
{
float x=0.3,t,sum=1;
int   i,j,n,m,k;
printf("Please input the value of n:\n"); //确定n的大小
scanf("%d",&n);
for(i=1;i<=n;i++)
   {
    t=1;
    m=1;
    for(k=1;k<=i;k++)               //计算x的i次幂,或者直接用pow( , )函数
    {
      t=t*x;
    }
 
    for(j=1;j<=i;j++)           //计算i的阶乘
    {
    m=m*j;
    }
    sum=sum+t/m;           //最终结果
   }
printf("The result is %f.\n",sum);   //输出结果
}
其实计算幂和阶乘的循环可以用一个for循环,如下面那位高手写的。循环变量顶初始值时定错了,应该拿到for循环体中。呵呵,不好意思了。

[ 本帖最后由 m456m654 于 2009-9-22 21:40 编辑 ]
2009-09-22 19:33
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
得分:0 
受益匪浅
2009-09-22 20:19
瓦药墙
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:218
专家分:556
注 册:2009-9-16
得分:2 
main()
{
    int i,j,n,m;
    float S,tem,X=0.3;
    printf("输入n的值(n<50):\n");
    scanf("%d",&n);
    S=1+X;
    for(i=2;i<=n;i++)
    {
        m=1;
        tem=1;
        for(j=1;j<=i;j++)
        {
            tem*=X;
            m*=j;
        }
        S+=tem/m;
    }
    printf("结果是:%f",S);
}
我用计算器验算了二楼的,结果有误
2009-09-22 21:13
xiaosemolang
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2009-9-22
得分:2 
float会超界,还是定义double型数据比较好。
main()
{
int n;
double x=0.3,i=1.0,j=1.0s=1.0;
for(n=1;n<50;n++)
{
    i*=x;
    j*=n;
    s+=i/j;
}
printf("%f\n",s);
}
2009-09-24 17:43
血狼夜怨
Rank: 2
等 级:论坛游民
帖 子:13
专家分:22
注 册:2009-9-13
得分:7 
给一个自认为比较完善的程序:
#include<stdio.h>
#include<conio.h>
 
float func(float x,unsigned n)/*计算x的n次幂*/
{
 if(n==0)
   return 1;
 return x*func(x,n-1);/*函数的递归调用*/
}
 
int jiecheng(unsigned n)/*计算n的阶乘*/
{
 if(n==0)
   return 1;
 return n*jiecheng(n-1);/*函数的递归调用*/
}
 
float div(float x,unsigned n)/*计算X^n/n!*/
{
 if(n==0)
   return 1;
 return func(x,n)/jiecheng(n);
}
 
void main()
{
 float func(float x,unsigned n);
 int jiecheng(unsigned n);
 float div(float x,unsigned n);
 
 float S=0.0,X=0.3;
 int i;
 unsigned n;
 printf("Please input n:\n");
 scanf("%d",&n);
 while(n>=50)/*判断输入的n是否小于50*/
   {
    printf("n must be small than 50!Input again!\n");
    scanf("%d",&n);
   }
 for(i=0;i<=n;i++)
    S+=div(X,i);
 printf("The result of S is:%f\n",S);
 printf("Press any key to quit!\n");
 getchar();
}
2009-09-24 19:05
清风凌波
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:147
注 册:2009-9-24
得分:0 
不错,可以学习学习!顶!
2009-09-24 20:48
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
得分:0 
提问的讲法不错啊,求到了一道题。呵呵

其实你可以自己动手先做做。即使用最蹩脚的做法先搞出来也是好的啊。

个人网站 -  http://.h001.
2009-09-25 00:56
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
得分:0 
回复 8楼 jig
呵呵!谢谢啊!
2009-09-25 16:05
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
得分:0 
回复 6楼 血狼夜怨
谢谢你的帮忙啊!
2009-09-25 16:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286470-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083904 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved