『壹』 c語言中怎麼自己定義並調用函數
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//聲明一個求和的函數
int sum(int a, int b);
int main(int argc, char* argv[])
{
int x = 5, y = 7;
int s = sum(x, y); //調用函數
printf("x + y = %d ", s);
system("pause");
return 0;
}
//定義求和函數
int sum(int a, int b)
{
return a + b;
}
更多C語言教程
『貳』 c語言如何定義函數
函數是用戶與程序的介面,在定義一個函數前,首先要清楚以下三個問題。 1) 函數的功能實現及演算法選擇。演算法選擇會在後續文章詳細講解,本節重點關注函數的功能實現。一般選取能體現函數功能的函數名,且見名知意,如求和函數的函數名可取為 add,求最大值的函數名可取為 max,排序函數可取名為 sort 等。 2) 需要用戶傳給該函數哪些參數、什麼類型,即函數參數。 3) 函數執行完後返回給調用者的參數及類型,即函數返回值類型。 函教定義格式 函數定義的一般格式為: 返回類型 函數名 (類型參數1,類型參數2,…) { 函數體 } 也可以不含參數,不含參數時,參數表中可寫關鍵字 void 或省略,為規范起見,教程中對沒有參數的函數,參數表中統一寫 void。例如: 類型 函數名 () { 函數體 } 等價於: 類型 函數名 (void) //建議的書寫方式 { 函數體 } 如果該函數沒有返回類型,則為 void 類型。例如: void add (int x,int y) { printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數體中,均需要顯式使用 return 語句返回對應的表達式的值。 函教返回值 函數的值是指調用函數結束時,執行函數體所得並返回給主調函數的值。 關於函數返回值說明如下。 1) 帶返回值的函數,其值一般使用 return 語句返回給調用者。其格式為: return 表達式; 或者 return (表達式); 例如: int add (int a, int b) { return (a + b); //return 後為表達式 } 函數可以含一個或多個 return 語句,但每次調用時只能執行其中一個 return 語句。 例如,求整數絕對值的函數: int f (int n) //含多個return語句,但每次調用只執行一個 { if (n >= 0) return n; else return -n; }
『叄』 c語言中怎樣弄多個函數
如果是用純C語言來寫,把所有函數聲明放在最前面,然後函數定義好,這樣的函數是公有的,可以隨意調用。然後主函數不能少,這樣子的話,所有函數包括主函數的前後順序可隨意。
void fun1();
void fun2();
//...
int main()
{
return 0;
}
void fun1()
{
//code...
}
void fun2()
{
//code...
}
//...
『肆』 c語言中最多能有幾個main函數
只能有一個main函數。
在C語言當中,一個程序,無論復雜或簡單,總體上都是一個「函數」;
這個函數就稱為「main() 函數」,也就是「主函數」。比如有個「做菜」程序,那麼「 做菜 」這個過程就是「主函數」。
在主函數中,根據情況,你可能還需要調用「買菜,切菜,炒菜」等子函數。
(4)c語言定義多個函數擴展閱讀:
函數分類
從用戶使用的角度看,函數有兩種:
1、標准函數,即庫函數。這是由系統提供的。
2、用戶自定義的函數。可以解決用戶的專門需要。
二、從函數的形式看,函數分兩類:
1、無參函數。printstar和print_message就是無參函數。在調用無參函數時,主調函數並不將數據傳送給被調用函數,一般用來執行指定的一組操作。
2、有參函數。在調用函數時,在主調函數和被調用函數之間有數據傳遞。也就是說,主調函數可以將數據傳遞給被調用函數使用,被調用函數中的數據也可以帶回來供主調函數使用。
參考資料:網路-----main函數
『伍』 C語言中編寫兩個函數
#include <stdlib.h>
#include <stdio.h>
typedef
struct list{
char data;
struct list *next;
} SLIST;
SLIST *creat(){
int c;
SLIST *h,*s,*r;
h=(SLIST *)malloc(sizeof(SLIST));/*生成頭結點*/
r=h;/*r指向當前表尾*/
scanf("%d",&c);/*讀入數據*/
while(c!=1){/*未讀到數據結束標志時進入循環*/
s=(SLIST *)malloc(sizeof(SLIST));/*生成一個新結點*/
s->data=c;/*讀入的數據存入新結點的data域*/
r->next=s;/*新結點連到表尾*/
r=s;/*r指向當前表尾*/
scanf("%d",&c);/*讀入數據*/
}
r->next='\0';/*置鏈表結束標志*/
return h;/*返回表頭指針*/
}
void take(SLIST *head){
SLIST *p;
p=head->next;/*p指向頭結點後的第一個結點*/
if(p=='\0')
printf("Linklist is null!\n");/*鏈表為空(只有頭結點)*/
else{/*鏈表非空*/
printf("head");
do{
printf("->%d",p->data);/*輸出當前結點數據域中的值*/
p=p->next;/*p指向下一個結點*/
}while(p!='\0');/*未到鏈表尾,繼續循環*/
printf("->end\n");
}
}
int main(){
SLIST *p;
p=creat();
take(p);
}
我在我的VS2010裡面編譯運行,沒有崩潰
輸入
2 3 1
輸出
head->2->3->end
輸入
1
輸出
Linklist is null!
『陸』 c語言定義函數是什麼
從參數角度分類:1.有參函數:函數有形參,可以是一個,或者多個,參數的類型隨便,完全取決於函數的功能。2.無參函數:函數沒有參數,在形參列表的位置寫一個viod或什麼都不寫。
每個C程序都至少有一個函數,即主函數main(),如果程序的任務比較簡單,全部的代碼都寫在main()函數中,但是,在實際開發中,程序的任務往往比較復雜,如果全部的代碼都寫在main()函數中,main()函數將非常龐大臃腫,結構復雜,代碼重復。
詳細信息:
我們可以根據程序的邏輯和任務的分工把代碼劃分到不同的自定義函數中,main()更關心業務邏輯和處理流程,需要執行具體任務的時候,調用這些自定義的函數就可以了。
為了方使理解,我們把函數分為兩種:一種是庫函數,一種是自定義函數。庫函數是C語言提供的,或系統提供的,實現了某些基本的功能,例如scanf、printf,在程序中可以直接使用。
自定義函數是程序員為了完成某項任務而編寫的函數,目的是為了實現某項的功能或讓主程序更簡潔。程序員在使用自定義函數之前,必須先聲明和定義。
『柒』 C語言:可以在一個函數中定義另一個函數為什麼不對謝謝
main函數不是必須定義的,可以嘗試放在其他函數前面,放在其他函數的上面,下面,都可以。
當編譯器編譯時,它逐行編譯。但它首先找到主函數,當主函數被編譯時,它意味著程序被編譯。如果主函數位於其他函數之前,則在主函數中調用的子函數(自定義函數)將在主函數之前聲明其存在。Void fun(int n,int m);
在大多數編程語言中,必須聲明(或在使用之前定義)變數、函數(過程)、結構、類、對象等。如果在使用其函數之前沒有聲明或定義編譯,則編譯失敗。它還報告錯誤:未定義的變數或函數,等等。
(7)c語言定義多個函數擴展閱讀:
main函數,又稱主函數,是程序執行的起點。C程序最大的特點就是所有的程序都是用函數來裝配的。main()稱之為主函數,是所有程序運行的入口。
其餘函數分為有參或無參兩種,均由main()函數或其它一般函數調用,若調用的是有參函數,則參數在調用時傳遞。
intmain(void)//整數類型主函數(無類型)
{
...
y1=f1(x1,x2);//賦值過程
...
}
f1(inta,intb)//f1(整數類型a,整數類型b)
{
//網路示例代碼.....
Y2=f2(x3,x4);//賦值過程
//網路示例代碼
}
f2(intm,intn)//f2(整數類型m,整數類型n)
{
『捌』 c語言編寫兩個自定義函數,分別實現求兩個整數的最大公約數和最小公倍數,並用主函數調用這兩個函數
#include<stdio.h>
#include<stdlib.h>
int HCF(int x,int y);//定義最大公約數函數
int LCM(int p,int q);//定義最小公倍數函數
int main()
{
int a,b,hcf,lcm;
scanf("%d%d",&a,&b);//輸入兩個整數
hcf=HCF(a,b);//調用最大公約數函數
lcm=LCM(a,b);//調用最小公倍數函數
printf("HCF is%d LCM is%d ",hcf,lcm);//輸出最大公約數和最小公倍數
system("pause");
return 0;
}
int sum;//定義外部變數sum
//最大公約數函數
int HCF(int x,int y)
{
int i,k,m,n;
sum=1;
k=x>y?y:x;
i=2;
while(i<=k){
m=x%i;
n=y%i;
if(m==0&&n==0){
sum*=i;
x/=i;
y/=i;
i=2;
}
else
i++;
}
return sum;
}
//最小公倍數函數
int LCM(int p,int q)
{
int lc;
lc=p*q/sum;
return lc;
}
(8)c語言定義多個函數擴展閱讀:
用法:
1、printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。
格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。
要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。
2、printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。
『玖』 在c語言中,我自己定義了兩個或多個函數,可以在我自己定義的函數中,使用我定義的函數嗎,就是函數嵌套
可以,遞歸就是這樣的啊
『拾』 如何在一個C語言程序中設置兩個函數
c語言中一個完整的函數由函數首部和函數體構成,而且定義函數時兩者都是必不可少的。
函數定義的一般形式如下:
類型標識符
函數名(形參表列)
//
這是函數首部
//
以下{
}內的是函數體
{
說明部分
執行部分
}
舉例說明如下:
//
定義一個不帶返回值的函數
//
函數功能:輸出形參的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定義一個帶返回值的函數
//
函數功能:返回2個整數數的最大值
int
fun(int
a,
int
b)
{
return
a>b
?
a
:
b;
}