❶ 如何用c語言求e^x的近似值
如下:
(1)#include<stdio.h>
int main()
{
double item=1,sum=1,n;
for(n=1;n<=20;n++)
{
item*=1.0/n;
sum+=item;
}
printf("The sum is %lf ",sum);
return 0;
}
(2)#include<stdio.h>
#include<math.h>
int main()
{
double item=1,sum=1,n=1;
do
{
item*=1.0/n;
sum+=item;
n++;
}while(fabs(item)>=1e-4);
printf("The sum is %lf ",sum);
return 0;
}
介紹
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。
C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性。
❷ 用c++求e的x次方,根據公式計算數值ex = 1 + x/1! + x2/2! + x3/3! + …
#include<iostream>
#include<cmath>
using namespace std;
long factorial (int ); //計算階乘函數聲明
int main()
{
int index=6;// 這個數字可以自己調,越大精度越高,不過最好不要超過15,太大了LONG類型裝不下
int x;
double result=0; //存放結果
cout<<"請輸入次方X;"<<endl;
cin>>x;
for(int i=0;i<=index;i++)
{
long fac=factorial (i);
result +=static_cast<double>(pow(x,i)/fac); //把結果強制轉換乘DOUBLE類型
}
cout<<"e的"<<x<<"次方是:"<<result<<endl;
system("pause"); //為了使你生成的EXE文件執行後能夠暫停下來
return 0;
}
long factorial (int n ) // 外部函數,用來計算階乘的
{
long fact=1;
for (int i=1;i<=n;i++)
fact*=i;
return fact;
}
VS 6.0下編譯通過。。看懂方法就可以了
❸ 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);
}
(3)求ex次方c語言擴展閱讀:
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
}
❹ ex在c語言中怎麼表示
C語言exp()函數:e的次冪函數(以e為底的x次方值)頭文件: #include exp()用來計算以e 為底的x 次方值,即ex值,然後將結果返回。
❺ 用C++編寫運算e的x次方的近似值
#include<stdio.h>
main()
{
double ex;
int k;
int n;
double x;
ex=0;
k=1;
n=0;
scanf("%d",&x); //這里賦值x
while( pow(x,n)/k >= 0.000001 )
{
ex=ex+pow(x,n)/k;
n=n+1;
k=k*n;
}
printf("ex=%d,x=%d,n=%d",ex,x,n);
}
或者
#include<stdio.h>
main()
{
double ex;
int k;
int n;
double x;
ex=0;
k=1;
n=0;
scanf("%d",&x); //這里賦值x
do
{
ex=ex+pow(x,n)/k;
n=n+1;
k=k*n;
}
while( pow(x,n)/k >= 0.000001 )
printf("ex=%d,x=%d,n=%d",ex,x,n);
}
❻ C語言編程 用泰勒展開式計算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次方的程序過程糾錯!!!
將輸入部分的%f改為%lf
double類型不是普通浮點類型,本身就不符合%f的條件
%f輸入的是flout型的數據,只有4位元組;而double類型有8位元組
而且函數scanf不像函數printf那樣,後者會實現自動轉換而前者不能。如:printf中,若前面標志的是%f,而後面的數據是double型的變數保存的,那麼系統會自動先將後面的數據轉換成符合要求的數據類型再輸出;而在scanf中,如果前面標志的是%f,而後面傳入的地址是double類型的變數的地址,那麼scanf會直接把數據按照flout類型的讀取和存儲方式存入double型的變數中,而在之後的處理中卻將變數當做double型的數據來處理,自然會發生難以預料的結果。
表示純手打,求採納
❽ 這個公式用C語言怎麼寫
當然要包含#include<math.h>
double exp(x):是計算e的X次方
x的平方:x*x或x^2或double pow(x,y)(計算x的y方,如pow(x,2))
所以:
f(x)=x^2-1/exp(x)
順便給出C中的math.h中的函數:僅供參考
C語言中的數學函數(maths.h)
acos
double acos(x)
double x;
計算arccos(x)的值
計算結果
x應在-1到1范圍內
asin
double asin(x)
double x;
計算arcsin的值
計算結果
x應在-1到1范圍內
atan
double atan(x)
double x;
計算arctan(x)的值
計算結果
atan2
double atan2(x,y)
double x,y;
計算arctan(x/y)的值
計算結果
cos
double cos(x)
double x;
計算cos(x)的值
計算結果
x的單位為弧度
cosh
double cosh(x)
double x;
計算x的雙曲餘弦cosh(x)的值
計算結果
exp
double exp(x)
double x;
求e的x次方冪
計算結果
fabs
double fabs(x)
double x;
求 x的絕對值
計算結果
floor
double floor(x)
double x;
求不大於x的最大整數
該整數的雙精度實數
fmod
double fmod(x,y)
double x,y;
求整除x/y的余數
返回余數的雙精度數
frexp
double frexp(val,eptr)
double val;
int *eptr ;
把雙精度數val分解為數字部分(尾數)x和以2為底的指數n,即val=x*(2的 n次方),存放在eptr指向的變數中.
返回數字部分x
0.5x<1
log
double log(x)
double x;
求lnx
計算結果
log10
double log10(x)
double x;
求以10為底x的對數
計算結果
modf
double modf(val,iptr)
double val;
double iptr;
把雙精度數val分解為整數部分和小數部分,把整數部分存到iptr指向的單元.
val的小數部分
pow
double pow(x,y)
double x,y;
計算x的y次冪
計算結果
sin
double sin(x)
double x;
計算sinx的值
計算結果
x的單位為弧度
sinh
double sinh(x)
double x;
計算x的雙曲正弦函數sinh(x)的值
計算結果
sqrt
double sqrt(x)
double x;
計算x的平方根
計算結果
x應大於或等於0
tan
double tan(x)
double x;
計算tan(x)的值
計算結果
x單位為度
tanh
double tanh(x)
double x;
計算x的雙曲正切函數tanh(x)的值
計算結果