c語言調用自定義函數
⑴ c語言中能否在一個自定義函數中調用另一個自定義函數
可以調用。
C語言最基本的模塊為茄虛函數,任意函數都可以調用其它任意一個函數,包括函數本身。
1、自定義函數調用其它自定義函數的例子:
#include <stdio.h>
void fun1(int a)//自定義函數fun1。
{
printf("%d\n",a);
}
void fun2(int m, int n)//自定義函數fun2。
{
fun1(m);
fun1(n);//調用兩次另一個自定義函數。
}
int main()
{
fun2(2,3);//調用fun2.
}
在這個例子中,就是主函數調用自定義函數fun2,然後fun2調用另一個自定義函數fun1.
2、不僅可以調用其它自定義函數,還可以調用自己本身。
這種稱為遞歸。
以下是通過遞歸,計算1+2+3+...+n值的代碼:
#include <stdio.h>
int fun(int n)
{
if(n == 1) return 1;
return n+fun(n-1);/顫乎燃/頃兄遞歸調用,返回和值。
}
int main()
{
printf("%d\n", fun(100));//計算1到100的和值。
return 0;
}
⑵ C語言中函數怎麼自己調用自己
一,函數調用的一般形式為:
函數名(實參列表);
實參可以是常數、變數、表達式等,多個實參用逗號,分隔。
在c語言中,函數調用的方式有多種,例如:
在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數是自左向右使用呢,還是自右向左使用。對此,各系統的規定不一定相同。
【示例】在vc6.0下運行以下代碼。
運行結果:
8
7
6
7
可見vc
6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9
10
9
8
函數的嵌套調用
函數不能嵌套定義,但可以嵌套調用,也就是在一個函數的定義中出現對另一個函數的調用。這樣就出現了函數的嵌套調用,即在被調函數中又調用其它函數。
【示例】計算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
分析:可以編寫兩個函數,一個用來計算階乘,一個用來計算累加的和。
#include
//求階乘
long
factorial(int
n){
int
i;
long
result=1;
for(i=1;
i<=n;
i++){
result
*=
n;
}
return
result;
}
//
求累加的和
long
sum(long
n){
int
i;
long
result
=
0;
for(i=1;
i<=n;
i++){
//嵌套調用
result
+=
factorial(n);
}
return
result;
}
int
main(){
printf("1!+2!+...+9!+10!
=
%ld\n",
sum(10));
return
0;
}
二,有些自定義函數可能會被頻繁的調用,所以寫在一個c文件里是不太方便的。應該把這些自定義的函數寫在一個c文件里,同時在一個頭文件.h文件里燃昌聲明。主函數可以通過引用該頭文件然後調用需要的自定義函數。
1,皮陸扒舉例:在頭文件(.h)里聲明自定義函數
2,在一個c語言文件里寫下自定義函數的實現
3,在主函數中調用自定義函數
4,最後編譯所有的涉及到的c文悉者件,頭文件可以不管
⑶ c語言中怎麼調用自己定義的函數
在使用一個函數之前必須先對他進行聲明:
//void B();聲明B函數的存在。void A(){B();//非法,程序執行到此時並不知道B函數的存在。}void B(){}
或者
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);
(3)c語言調用自定義函數擴展閱讀
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("pause");
exit(0);
}
⑷ c語言如何調用自定義的賦值函數
在使用一個函數之前必須先對他進行聲禪握明:
//void B();聲明B函租困數的存在。void A(){B();//非法,程序執行到此時並不知道B函數的存在。}void B(){}
或者
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);
(4)c語言調用自定義函數擴展閱讀
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fa(int n)
{
int a;
for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);
if(a>sqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",&n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("賀型慶pause");
exit(0);
}
⑸ C語言自定義函數調用
自定義函數是由用戶按需要寫的函數。這與庫函數相對應的,庫函數是由c系統提供的函數,已經定義好了如printf
、
scanf
、
getchar
、putchar、gets、puts、strcat等函數均屬此類。
說白了,自定義函數是是自己寫的,想實現什麼功能就寫什麼,然後在用的時候和庫函數(系統定義的)的一樣調用就是了,相當於自己增加了一個自己的庫函數。
⑹ c語言中怎麼調用函數謝謝
C語言中,函數調用的一般形式為:函數名(實際參數表)對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。
#include<stdio.h>
int fun(int x, int y); // 函數聲明,如果函數寫在被調用處之前,可以不用聲明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
// 自定義函數fun
int fun(int x, int y) // 函數首部
{ // {}中的語言為函數體
return x>y ? x : y; // 返回x和y中較大的一個數
}
函數實參
函數作為另一個函數調用的實際參數出現。這種情況是把該函數的返回值作為實參進行傳送,因此要求該函數必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調用的返回值又作為printf函數的實參來使用的。在函數調用中還應該注意的一個問題是求值順序的問題。
所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各系統的規定不一定相同。介紹printf 函數時已提到過,這里從函數調用的角度再強調一下。
以上內容參考:網路-函數調用
⑺ C語言中如何調用文件中的自定義函數
不知道你用的是什麼開發工具。
用常規開發工具,通常情況下,有以下幾種方法:
1、創建你的文件,include 你要調用的函數所在的文件,然後直接調用;
2、創建一個工程文件,將你所要調用函數的文件載入到工程文件中,然後,在你調用的文件中,聲明你要調用的函數,然後調用即可;
3、將你要調用的函數所在的文件分離,讓其不包含主函數,然後將其單獨編譯,生成obj文件,通過lib將其有obj文件轉換為lib文件,建立單獨的聲明函數頭文件,設置庫文件目錄,在你要調用的文件中include聲明函數頭文件,然後調用即可。
⑻ C怎樣自定義函數
自定義函數的步驟:
1、 在頭文件里聲明自定義函數,定義用戶寫的函數;
2、 在一個C語言文件里寫下自定義函數的實現方式,可以寫在主函數前,也可在主函數後;
3、 在主函數中調用自定首喚義函數,記得頭文件的聲明;
4、羨滾 最後編譯所有的涉及到的C文件。
有些自定義函數可能會被頻繁的調用,所以寫在一個C文件里不方便。應該把這些自定義的函數寫在一個C文件里,同時在一個頭文件文件里聲明。主函數可以通過引用該頭文件兄芹余然後調用需要的自定義函數。
⑼ C語言中,printf中調用自定義函數必須要先定義嗎
不一定。
有兩種方法:
第一種:無論在printf中,還是main中,或者是在其他任何函數中,要調用自定義函數,都要進行先定義。後面就可以自由調用了。
第二種:C語言把自定義函數的語句放在調用的後面,但調用虧仿拆之前,一定要大歷寫上自定銷棗義函數的聲明語句。只有這樣,才不會出現編譯錯誤。
⑽ C語言中能否在一個自定義函數中調用另一個自定義函數
當然可以!
C語言程序的最基本的模塊就是函數,
該程序規定:任意函數都可以調用其它任意一個函數,包括函數本身;
1、函數調用自己本身, 這種稱為遞歸;
通過遞歸,計算1+2+3+...+n值的代碼: