這是譚浩強(qiáng)那本書上一個很典型的程序,看看書就能改了。
創(chuàng)新互聯(lián)是專業(yè)的延平網(wǎng)站建設(shè)公司,延平接單;提供網(wǎng)站設(shè)計制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行延平網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
給你個答案參考一下:
#includestdio.h
void exchange(int *x,int *y);//此處將函數(shù)返回類型修改為void型,因?yàn)楹瘮?shù)本來就沒返回值。參數(shù)全部改為指針型。
int main(void)
{
int a,b;
printf("請輸入a,b\n");
scanf("%d%d",a,b);
exchange(a,b);//此處參數(shù)變?yōu)槿〉刂穉,b
printf("a=%d,b=%d",a,b);
return 0;
}
void exchange(int *x,int *y)//根據(jù)函數(shù)聲明一并修改
{
int *i;//所要操作的數(shù)據(jù)都是指針,所以這里緩存也要變?yōu)橹羔槨?/p>
i=x;
x=y;
y=i;
}//本來就沒返回值為啥原題要聲明成返回值為int型的函數(shù)呢?
要用函數(shù)實(shí)現(xiàn)兩個數(shù)的交換,則函數(shù)參數(shù)必須定義為指針形式,否則函數(shù)中對數(shù)值的修改將不會影響主調(diào)函數(shù),這是C語言的規(guī)則。
所以,以整型為例,自定義函數(shù)書寫如下:
void
swap_int(int*a,int*b)
{
int
t;
t
=
*a;
*a=*b;
*b=t;
}
不能用第三變量說清楚啊 兩種方法 1,用異或"^"解決; 2。直接重新賦值!哈哈!! #includestdio.h void main() { int a=2,b=4; a=4; b=2; printf("%d%d",a,b); }
采納哦
#include
stdio.h
void
change(int
*a,int
*b){
int
m;
//定義一個臨時變量
m
=
*a;
//把a(bǔ)指向的值放到m中
*a
=
*b;
//把b指向的值放到a指向的內(nèi)存中
*b
=
m;
//把m中的值放到b指向的空間中,函數(shù)調(diào)用結(jié)束時m的生成周期也完了,就釋放掉了
}
int
main(){
int
i
=
1;
int
j
=
2;
change(i
,j);
//函數(shù)調(diào)用
printf("%d,%d\n",i,j);
return
0;
}
void changes(float x1,float y1)
下面的不便,這樣就不是傳值了。而是傳遞引用。直接對參數(shù)起作用
c語言中用函數(shù)交換兩個變量的值方法是先將變量賦值給中間變量,然后中間變量再賦值給另外一個變量,程序如下:
#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語言的語法結(jié)構(gòu):
1、順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個問題就好像交換兩個杯子里面的水,這當(dāng)然要用到第三個杯子,假如第三個杯子是c,那么正確的程序?yàn)椋篶 = a; a = b; b = c;執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯誤。
順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個簡單的完整程序,常見的輸入、計算、輸出三步曲的程序就是順序結(jié)構(gòu)。
2、選擇結(jié)構(gòu)
對于要先做判斷再選擇的問題就要使用選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語句。
選擇結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計算,設(shè)計這類程序時往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設(shè)計分析與語言分開,使得問題簡單化,易于理解。程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。
3、循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計中最能發(fā)揮計算機(jī)特長的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
四種循環(huán)可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因?yàn)閺?qiáng)制改變程序的順序經(jīng)常會給程序的運(yùn)行帶來不可預(yù)料的錯誤。
參考資料來源:百度百科-C語言
分享標(biāo)題:c語言用函數(shù)調(diào)換a,c語言數(shù)值函數(shù)
轉(zhuǎn)載源于:http://jinyejixie.com/article0/dssdjio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、軟件開發(fā)、網(wǎng)站收錄、小程序開發(fā)、企業(yè)網(wǎng)站制作、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)