在函數中需要函數名的地方寫上 宏 __func__就可以了
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、虛擬空間、營銷軟件、網站建設、萬柏林網站維護、網站推廣。
#include stdio.h
const char* func1()
{
return __func__; //這語句類似return (char *)"func1";
}
void func2()
{
printf("call function %s\n", __func__);
}
int
main(void)
{
printf("function name %s\n", func1());
func2();
return(0);
}
運行結果:
function name func1
call function func2
1.
c語言中要編寫sin函數,實質上要利用sin的泰勒公式,然后根據泰勒公式,將其中的每一項進行分解,最后用循環,累加計算出最終結果
2.
下面用for循環實現sin的算法,程序代碼如下:
#include
#include
void
main()
{
int
i;
float
x,sum,a,b;
//sum代表和,a為分子,b為分母
char
s;
printf("please
input
x");
scanf("%f",x);
s=1;
sum=0;
a=x;
//分母賦初值
b=1;
//分子賦初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;
//累加一項
a=a*x*x;
//求下一項分子
b=b*2*i*(2*i+1);
//求下一項分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3.
關于上述程序的幾點說明:上述程序的計算結果精確到小數點后六位;上述程序運用了sin的泰勒展開式
sin
x=x-x^3/3!+x^5/5!
......
,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便于每一項的累加
fgets(ch,2,fp);
表示的fgets(char *s,int n,file)表示輸出流文件的n-1個字符,所以只能輸出2-1個,改為
fgets(ch,3,fp);就行啦輸出ab
#include stdio.h
#includestdlib.h
void main()
{
FILE *fpc,*fp;
if((fpc=fopen("c:\\文件練習.TXT","w")) == NULL)//這里的W后面加b就是二進制文件的,以下相同,
//a是追加
{
printf("can't open this file!/n");
exit(0);
}
char chr;
printf("輸入文件的內容\n");
chr=getchar();
while(chr!='@')
{
fputc(chr,fpc);
chr=getchar();
}
fclose(fpc);
printf("\n輸出文件:");
if( (fp=fopen("c:\\文件練習.TXT","r")) == NULL)
{
printf("can't open this file!/n");
exit(0);
}
char ch[100]={0};
fgets(ch,3,fp);
puts(ch);
fclose(fp);
}
1、首先要有函數,設置成double類型的參數和返回值。
2、然后根據導數的定義求出導數,參數差值要達到精度極限,這是最關鍵的一步。
3、假如函數是double fun(doube x),那么導數的輸出應該是(fun(x)-fun(x-e))/e,這里e是設置的無窮小的變量。
4、C由于精度有限,因此需要循環反復測試,并判斷無窮小e等于0之前,求出上述導數的值。二級導數也是一樣,所不同的是要把上述導數公式按定義再一次求導。這是算法,具體的實現自己嘗試編程。
C語言的數據長度和精度都有限,因此用C語言編程求的導數并不精確,換句話說C語言編程不適合求導和極限。
擴展資料:
舉例說明:
一階導數,寫一個函數 y = f(x):
float f(float x){ ...}
設 dx 初值
計算 dy
dy = f(x0) - f(x0+dx);
導數 初值
dd1=dy/dx;
Lab:;
dx = 0.5 * dx; ?// 減小步長
dy = f(x0) - f(x0+dx);
dd2=dy/dx; ?// 導數 新值
判斷新舊導數值之差是否滿足精度,滿足則得結果,不滿足則返回
if ( ?fabs(dd1-dd2) 1e-06 ) { 得結果dd2...}
else { dd1=dd2;goto Lab;}。
C語言的標準庫
math.h中有tan的聲明
直接用就好
double tan(double x);
#define EPSLION 1e-5
double sqrt(double n)
{
if (n 0)
{
return n;
}
double low = 0.0, high = n;
double value = (low + high) / 2;
while (value * value - n EPSLION || value * value - n -EPSLION)
{
if (value * value n)
high = value;
else
low = value;
value = (high + low) / 2;
}
return value;
}
標題名稱:c語言求原函數,求原函數方法
文章源于:http://www.yijiale78.com/article6/hcseog.html
成都網站建設公司_創新互聯,為您提供自適應網站、外貿建站、企業網站制作、App設計、品牌網站設計、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯