e的x次方編程
#include<stdio.h>
#include<math.h>
intmain()
{
doubleadd(doublex,doublen);
doublex,n,sum;
scanf("%lf%lf",&x,&n);
if(n<0||x<0)
{
printf("error");
return0;
}
else
{
sum=add(x,n);
printf("%.6lf",sum);
}
return0;
}
doubleadd(doublex,doublen)
{
doubleb=1,c=1;
doublesum=1;
for(b=1;b<=n;b++)
{
sum=sum+(pow(x,b))/c;
b=b+1;
c=c*b;
}
returnsum;
}
你這樣做,那個輸出錯誤的結果判斷要在計算之前,並且出錯後要退出,而且你的異常條件要寫成:if(n<0||x<0),因為0是允許的。然後計算和的函數我減去了一個變數,有循環變數就可以替代n了
我的運行結果,但我不知道運算的對不對,程序反正沒有錯誤了,也可以運行的
Ⅱ C語言編程求解e的x次方啊
網路快速冪解決,速度快,如果是求位數的話用公式:指數*lg2+1向下取整
Ⅲ 求用C語言編程出計算e的x次方。其中e的x次方=1+x+x^2/(2!)...+x^n/(n!)的原程序
#include <stdio.h>
long float fun(int n) //求階乘函數
{
if(n>1)
return n*fun(n-1);
else
return 1;
}
long float fun1(int x,int n) //求x的n次方函數
{
long float i;
long float sum=1;
if(n>=1)
for(i=1;i<=n;i++)
sum*=x;
else
sum=1;
return sum;
}
main()
{
int x,i=1;
long float sum=1,s;
printf("請輸入x:\n");
scanf("%d",&x);
for(i=1;i<150;i++) //n最大取值為149...
sum+=fun1(x,i)/fun(i);
printf("e的%d次方的值為:%f\n", x,sum);
}
Ⅳ 求e的x次方的編程 能看一下是哪錯了嗎
你定義precision的時候沒有賦值,後來也沒有輸入precision的值,但是卻作為參數傳給了myexp了所以出錯
Ⅳ c語言怎麼寫自然數e的x次方
#include<stdio.h>
#include<math.h>
main()
{
int x;
double y;
printf("Please input x:");
scanf("%d",&x);
if(x>0)
{
y=exp(x);
}
else if(x<0)
{
y=exp(x);
}
else
{
printf("y==1 ");
}
printf("y=%f ",y);
}
(5)e的x次方編程擴展閱讀:
printf()函數的用法
1.printf()函數的調用格式為:printf("<格式化字元串>",<參量表>);
//__stdcall
int __cdecl printf(const char*p,...);
...可變參數
printf在列印浮點數,不論原來是雙精度還是單精度,都變為雙精度(8位元組)
列印1位元組(char)2位元組(short)4位元組(int)==>4位元組,除了long long(8位元組)
void main()
{
int a=10;
folat ft=12.25f;
printf("%d%d ",a,ft);
}
%d格式控制符--不具有強轉能力
A格式化字元串包括兩部分內容:
一部分是正常字元,這些字元將按原樣輸出;
另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
1.d/i有符號十進制形式輸出(正數不輸出符號)
2.u無符號十進制形式輸出
3.o無符號八進制形式輸出(不輸出前綴0)
4.x無符號十六進制形式輸出(不輸出前綴Ox),並以小寫abcdef表示。
5.X無符號十六進制形式輸出(不輸出前綴Ox),並以大寫ABCDEF表示。
6.c輸出單個字元
7.s輸出字元串
8.f以小數形式輸出單、雙精度實數
9.E/e用科學計數法表示浮點數
10.G/g以%f或%e中較短的輸出寬度輸出單、雙精度實數
+++++++++
void main()
{
long long x=0x12345678901357;
printf("%x ",x);//=>78 90 13 57
printf("%lx ",x);//=>78 90 13 57
printf("%llx ",x);//=>12345678901357
}
Ⅵ 編程e的x次方怎麼求
EXP(1)=e
e的x次方就是
EXP(1)^X
Ⅶ 當n=15時,C語言編程出計算e的x次方。其中e的x次方=1+x+x^2/(2!)...+x^n/(n!)的程序。
#include"stdio.h"
void main()
{
int i,x,n;float e=0;
printf("請輸入x的值:");
printf(「請輸入n的值:");
for(i=1;i<=n;i++)
{ e=e+x^i/fac(n);
}
printf("%f",e);
}
Ⅷ C語言程序設計:用下面公式計算e的x次方。
#include "stdio.h"
int x;
float sum;
long f1(n)
int n;
{if(n==0) return 1;
else return x*f1(n-1);
}
long f2(n)
int n;
{
if(n==0) return 1;
else return n*f2(n-1);
}
int main()
{
int i;
scanf("%d",&x);
for(i=0;i<10;i++)
sum+=(float)f1(i)/(float)f2(i);
printf("%f",sum);
getchar();
getchar();
}
Ⅸ 用c語言編寫一段程序,用求和公式求E的X次方的近似值。
//exp.c
#include <math.h>
double expTaylor(double x,int n)
{
double sum=1,fac;
int i,j;
for(i=1;i<=n;i++)
{
j=i;
fac=1;
while(j) fac*=j--;
sum+=pow(x,i)/fac;
}
return sum;
} extern double expTaylor(double x,int n);
#include <stdio.h>
int main()
{
int n=10,i;
for(i=0;i<n;i++)
printf("%.16lf\n",expTaylor(1,i)); return 0;
}
Ⅹ C語言,編程出,計算e的x次方。其中e的x次方=1+x+x^2/(2!)...+x^n/(n!)。 幫我看看哪裡錯了。
在double exp1()函數中for應該這樣寫
for (b=1; b<=n; b++)
{
sun1 *= b;
sum += (pow(x, b)/sum1);
}
你少了個括弧,這回再試試~~
其實最好把sum1設置成int型,因為它僅僅是用來算階乘的
順便提醒你,如果你是新手,學習編程一定要養成好的習慣,建議你看看《C/C++規范編程》很不錯的書~~
祝學習愉快