欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言雙變量函數(shù) c語(yǔ)言函數(shù)兩個(gè)變量

c語(yǔ)言中用函數(shù)交換兩個(gè)變量的值?

c語(yǔ)言中用函數(shù)交換兩個(gè)變量的值方法是先將變量賦值給中間變量,然后中間變量再賦值給另外一個(gè)變量,程序如下:

成都創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、微信小程序開(kāi)發(fā)、軟件開(kāi)發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷(xiāo)領(lǐng)域創(chuàng)造價(jià)值而不懈努力!

#include "Stdio.h"

#include "Conio.h"

void swap(int x,int y)

{

int t,m;

t=x; ?//變量x賦值給中間變量t

m=y; ? ?//變量y賦值給中間變量m

x=m; ? ?//中間變量m賦值給變量x,將y的值賦值給了x。

y=t; ? ? ?//中間變量t賦值給變量y,將x的值賦值給了y。

}

main()

{

int a,b;

a=1,b=2;

swap(a,b); //調(diào)用交換函數(shù)

printf("%d,%d",a,b);

getch();

}

擴(kuò)展資料:

C語(yǔ)言的語(yǔ)法結(jié)構(gòu):

1、順序結(jié)構(gòu)

順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。

例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問(wèn)題就好像交換兩個(gè)杯子里面的水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋篶 = a; a = b; b = c;執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫(xiě)成:a = b; c = a; b =c;則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。

順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算、輸出三步曲的程序就是順序結(jié)構(gòu)。

2、選擇結(jié)構(gòu)

對(duì)于要先做判斷再選擇的問(wèn)題就要使用選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語(yǔ)句。

選擇結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計(jì)算,設(shè)計(jì)這類(lèi)程序時(shí)往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫(xiě)出源程序,這樣做把程序設(shè)計(jì)分析與語(yǔ)言分開(kāi),使得問(wèn)題簡(jiǎn)單化,易于理解。程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。

3、循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書(shū)寫(xiě)的工作量,用來(lái)描述重復(fù)執(zhí)行某段算法的問(wèn)題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長(zhǎng)的程序結(jié)構(gòu),C語(yǔ)言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。

四種循環(huán)可以用來(lái)處理同一問(wèn)題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因?yàn)閺?qiáng)制改變程序的順序經(jīng)常會(huì)給程序的運(yùn)行帶來(lái)不可預(yù)料的錯(cuò)誤。

參考資料來(lái)源:百度百科-C語(yǔ)言

5、使用C語(yǔ)言編寫(xiě)一個(gè)函數(shù),用于交換兩個(gè)變量的值(地址傳遞)。

不知道你要交換的兩個(gè)變量類(lèi)型,所以這里以整型數(shù)據(jù)交換為例,以下swap函數(shù)實(shí)現(xiàn)了交換兩個(gè)整型變量值的功能:

#include?stdio.h

//?交換給定指針指向整型變量的值。

//?參數(shù):

// a?-?指向第一個(gè)變量的指針

// b?-?指向第二個(gè)變量的指針

void?swap(int*?a,?int?*?b);

int?main(int?argc,?int?argv)

{

int?a?=?3,?b?=?5;

printf_s("交換前:a?=?%d,?b?=?%d\n",?a,?b);

swap(a,?b);

printf_s("交換后:a?=?%d,?b?=?%d\n",?a,?b);

return?0;

}

//?交換給定指針指向整型變量的值。

//?參數(shù):

// a?-?指向第一個(gè)變量的指針

// b?-?指向第二個(gè)變量的指針

void?swap(int*?a,?int*?b)

{

//?聲明一個(gè)臨時(shí)變量,保存第一個(gè)指針指向變量

//?的值。

//?其中?*a?是取出?a?指針指向變量的值

int?temp?=?*a;

//?將?b?指針指向的值賦值給?a?指針指向變量

(*a)?=?(*b);

//?將臨時(shí)變量?temp?中保存的?a?指針指向變量的值賦值給

//?b?指針指向的變量。

(*b)?=?temp;

}

以上代碼運(yùn)行結(jié)果如下:

以下代碼實(shí)現(xiàn)了使用宏定義作為模板,聲明不同類(lèi)型交換函數(shù)的功能,以下以聲明double和float為例:

#include?stdio.h?

//?聲明一個(gè)函數(shù)代碼模板,邏輯參考?swap(int*?a,?int*?b)

#define?DEF_SWAP_FUNC(Type)?void?swap_##Type(Type*?a,?Type*?b)?\

{?\

Type?temp?=?(*a);?\

(*a)?=?(*b);?\

(*b)?=?temp;?\

}?

//?使用模板聲明并實(shí)現(xiàn)一個(gè)?double?類(lèi)型變量交換函數(shù),函數(shù)名為?swap_double

DEF_SWAP_FUNC(double)

//?使用模板聲明并實(shí)現(xiàn)一個(gè)?float?類(lèi)型變量交換函數(shù),函數(shù)名為?swap_float

DEF_SWAP_FUNC(float)

int?main(int?argc,?int?argv)

{

//?double?類(lèi)型數(shù)據(jù)交換

double?da?=?5.6,?db?=?3.5;

printf_s("double?交換前:da?=?%lf,?db?=?%lf\n",?da,?db);

swap_double(da,?db);

printf_s("double?交換后:da?=?%lf,?db?=?%lf\n",?da,?db);

//?float?類(lèi)型數(shù)據(jù)交換

float?fa?=?3.4,?fb?=?6.8;

printf_s("float?交換前:fa?=?%f,?fb?=?%f\n",?fa,?fb);

swap_float(fa,?fb);

printf_s("float?交換前:fa?=?%f,?fb?=?%f\n",?fa,?fb);

return?0;

}

運(yùn)行結(jié)果如下:

c語(yǔ)言 編一程序 交換兩個(gè)變量的值(用指針做函數(shù)參數(shù))

#include stdio.h??

void Swap(int a,int b)

{

int tmp = a;

a = b;

b = tmp;

printf("a=%d,b=%d\n",a,b);

}

int main()

{

int a = 5;

int b = 10;

printf("a=%d,b=%d\n",a,b);

Swap(a,b);

printf("a=%d,b=%d\n",a,b);

return 0;

}

擴(kuò)展資料:

形參和實(shí)參的特點(diǎn)

1、形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。因此,形參只在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)用函數(shù)后則不能再使用該形參變量。

2、實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等,無(wú)論實(shí)參是何種類(lèi)型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值,輸入等辦法使參數(shù)獲得確定值。

3、實(shí)參和形參在數(shù)量上,類(lèi)型上、順序上應(yīng)嚴(yán)格一致,否則就會(huì)發(fā)生類(lèi)型不匹配的錯(cuò)誤。

4、在一般傳值調(diào)用的機(jī)制中只能把實(shí)參傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過(guò)程中,形參值發(fā)生改變,而實(shí)參中的值不會(huì)變化。而在引用調(diào)用的機(jī)制當(dāng)中是將實(shí)參引用的地址傳遞給了形參,所以任何發(fā)生在形參上的改變實(shí)際上也發(fā)生在實(shí)參變量上。

參考資料:

百度百科-形參

分享標(biāo)題:c語(yǔ)言雙變量函數(shù) c語(yǔ)言函數(shù)兩個(gè)變量
鏈接地址:http://chinadenli.net/article30/dooeppo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)移動(dòng)網(wǎng)站建設(shè)小程序開(kāi)發(fā)網(wǎng)站導(dǎo)航微信公眾號(hào)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司