c語言中用函數(shù)交換兩個變量的值方法是先將變量賦值給中間變量,然后中間變量再賦值給另外一個變量,程序如下:
為寧波等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及寧波網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、成都做網(wǎng)站、寧波網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
#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();
}
擴展資料:
C語言的語法結(jié)構(gòu):
1、順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設計是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳恼Z句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個問題就好像交換兩個杯子里面的水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為:c = a; a = b; b = c;執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執(zhí)行結(jié)果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。
順序結(jié)構(gòu)可以獨立使用構(gòu)成一個簡單的完整程序,常見的輸入、計算、輸出三步曲的程序就是順序結(jié)構(gòu)。
2、選擇結(jié)構(gòu)
對于要先做判斷再選擇的問題就要使用選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設計方法的關鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當?shù)倪x擇語句。
選擇結(jié)構(gòu)適合于帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易于理解。程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。
3、循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復書寫的工作量,用來描述重復執(zhí)行某段算法的問題,這是程序設計中最能發(fā)揮計算機特長的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
四種循環(huán)可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因為強制改變程序的順序經(jīng)常會給程序的運行帶來不可預料的錯誤。
參考資料來源:百度百科-C語言
要用函數(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;
}
交換兩個數(shù)字有很多種方法,這里我使用其中最簡單一種完成函數(shù):
void
swap(int
*a,
int
*b)
//參數(shù)傳入指針,為了交換改變傳入變量的值
{
int
c;
//變量c作用域僅僅在該函數(shù)內(nèi),無法再函數(shù)外使用,函數(shù)調(diào)用完,c的生存期也
c
=
a;
就結(jié)束了
a
=
b;
b
=
c;
}
哪里不清楚請?zhí)釂?/p>
因為void
gsd(int
a,int
b)中的a和b在調(diào)用時用實參的值進行拷貝,在函數(shù)中交換的只是拷貝過來的副本,所以原來的實參值并沒有發(fā)生交換操作。而在void
gsd(int
a,int
b)中int
類型使a和b的性質(zhì)發(fā)生了變量,它們是“引用變量”,調(diào)用時它們就成了實參的“別名”——就是說在函數(shù)中操作的是實參本身,所以結(jié)果實參發(fā)生了交換變化——int
等類型是C++引入的新類型,C是沒有的。要搞清楚的是int
是“整型引用”,并不是指針;整型指針是int
*。建議你不要用“鄙視”這樣的字眼,誰答得不好你大可不理會;這里沒有什么都明白的人,都明白的人不到這里來!不明白可續(xù)問……
#include"stdio.h"int swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}
main(){int x,y;printf("請輸入x與y的值,用空格隔開\n");scanf("%d%d",x,y);printf("x=%d,y=%d\n",x,y);swap(x,y);printf("交換后\nx=%d,y=%d\n",x,y);}
擴展資料:
C語言是一門通用計算機編程語言,廣泛應用于底層開發(fā)。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數(shù)名和漢字標識符,一定程度上實現(xiàn)了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向?qū)ο蟮木幊陶Z言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:百度百科-C語言
交換函數(shù)很好寫。
比較難的讀文件。文件格式 與 讀語句要 相配。 特別是 多余 的 空行和回車鍵。
調(diào)試時用 printf 語句 檢查 讀得對不對。
fgets() 函數(shù)可用來讀整行的字符串,含回車鍵。
#include stdio.h
#includestdlib.h
void jh(char *a, char *b){
char x[100];
strcpy(x,a),strcpy(a,b),strcpy(b,x);
}
int main(){
FILE *fp;
int n,i,j;
char a[100];
char b[100];
char ch;
if((fp=fopen("2.2.txt","r"))==NULL){
printf("Error");
exit(0);
}
fgets(a,100,fp);
sscanf(a,"%d",n);
//printf("n=%d\n",n);
for(j=1;j=n;j++){
fgets(a[0],100,fp);
//printf("read a: %s",a);
fgets(b[0],100,fp);
// printf("read b: %s",b);
printf("Case %d\n",j);
jh(a,b);
printf("%s",a);
printf("%s",b);
fgets(a[0],100,fp); // 假定2組數(shù)間只有一個空白行,則用它跳過。
}
fclose(fp);
return 0;
}