e的x次方的c语言 130
利用公式e=1+1/1!+1/2!+```+1/n!计算e的值(取前十项)我编了一个,定义x为整数,现在想让x为分数,谁能知道怎么改,运行正确就给分。#include<s...
利用公式e=1+1/1!+1/2!+```+1/n!计算e的值(取前十项)
我编了一个,定义x为整数,现在想让x为分数,谁能知道怎么改,运行正确就给分。
#include<stdio.h>
void main()
{
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ for(j=1;j<=n-i;j++) printf(" ");
k=65;
do
{printf("%c",k);
k++;
}while(k<=65+i-1);
k--;
if(i!=1)
{
do
{ printf("%c",k-1);
k--;
}while(k>65);
printf("\n");
}
else
printf("\n");
}
}
不好意思源程序贴错了,改正
#include<stdio.h>
int f1(int m,int x)
{
int i;
int j=1;
for(i=1;i<=m;i++)
j*=x;
return j;
}
int f2(int p)
{
if(p==0||p==1)
return 1;
else
return p*f2(p-1);
}
main()
{
int n,y;
double r,sum=0;
scanf("%d",&y);
for(n=0;n<10;n++)
{
r=(double)f1(n,y)/(double)f2(n);
sum+=r;
}
printf("%f\n",sum);
}
貌似没那么简单,也许是我太菜了,但这道题的数据类型却很让人纠结 展开
我编了一个,定义x为整数,现在想让x为分数,谁能知道怎么改,运行正确就给分。
#include<stdio.h>
void main()
{
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ for(j=1;j<=n-i;j++) printf(" ");
k=65;
do
{printf("%c",k);
k++;
}while(k<=65+i-1);
k--;
if(i!=1)
{
do
{ printf("%c",k-1);
k--;
}while(k>65);
printf("\n");
}
else
printf("\n");
}
}
不好意思源程序贴错了,改正
#include<stdio.h>
int f1(int m,int x)
{
int i;
int j=1;
for(i=1;i<=m;i++)
j*=x;
return j;
}
int f2(int p)
{
if(p==0||p==1)
return 1;
else
return p*f2(p-1);
}
main()
{
int n,y;
double r,sum=0;
scanf("%d",&y);
for(n=0;n<10;n++)
{
r=(double)f1(n,y)/(double)f2(n);
sum+=r;
}
printf("%f\n",sum);
}
貌似没那么简单,也许是我太菜了,但这道题的数据类型却很让人纠结 展开
8个回答
展开全部
不太明白楼主的想法,既然是求e值,那e值的公式是固定的,为什么在程序里需要输入数值,scanf("%d",&y); ??为什么还要输入y的值?这是其中一个疑问?
如果想要把正数改成分数,可以用scanf("%f",&y); d改成f就可以了!前面类型定义相应改变!
如果想要把正数改成分数,可以用scanf("%f",&y); d改成f就可以了!前面类型定义相应改变!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看不懂你说的,你的这个程序不知道得出来的是什么东西
我在你的基础上改了(不过改的挺多的)这代码是用上面那公式求e的
#include<stdio.h>
int f1(int m)
{
int i;
int j=1;
for(i=1;i<=m;i++)
j*=i;
return j;
}
void main()
{
int n;
double r,sum=1.0;
for(n=1;n<=10;n++)
{
r=(double)1/f1(n);
sum+=r;
}
printf("%f\n",sum);
}
我在你的基础上改了(不过改的挺多的)这代码是用上面那公式求e的
#include<stdio.h>
int f1(int m)
{
int i;
int j=1;
for(i=1;i<=m;i++)
j*=i;
return j;
}
void main()
{
int n;
double r,sum=1.0;
for(n=1;n<=10;n++)
{
r=(double)1/f1(n);
sum+=r;
}
printf("%f\n",sum);
}
参考资料: 自己写的 分!!分!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
long f1(int m,int x)
{
if (m == 0)
return 1;
else
return (x * f1(m-1, x));
}
long f2(int p)
{
if(p==0||p==1)
return 1;
else
return p*f2(p-1);
}
int main()
{
int n,y;
double r,sum=0;
scanf("%d",&y);
for(n=0;n<10;n++)
{
r=(double)f1(n,y)/(double)f2(n);
sum+=r;
}
printf("%f\n",sum);
return 0;
}
{
if (m == 0)
return 1;
else
return (x * f1(m-1, x));
}
long f2(int p)
{
if(p==0||p==1)
return 1;
else
return p*f2(p-1);
}
int main()
{
int n,y;
double r,sum=0;
scanf("%d",&y);
for(n=0;n<10;n++)
{
r=(double)f1(n,y)/(double)f2(n);
sum+=r;
}
printf("%f\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恩,懂了好像,留下标记...
发现个问题,这个求e的x次方,有个函数可以直接调用的啊。
double exp(double x);
加个头文件#include <math.h>就可以用了啊...
发现个问题,这个求e的x次方,有个函数可以直接调用的啊。
double exp(double x);
加个头文件#include <math.h>就可以用了啊...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询