#include?stdio.h
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了靜寧免費(fèi)建站歡迎大家使用!
#include?stdlib.h
int?main(void)
{?int?a,b;
void?swap(int?*x,int?*y);
scanf("%d%d",a,b);
swap(a,b);
printf("%d%d\n",a,b);
system("PAUSE");
return?0;
}
void?swap(int?*x,int?*y)
{
int?c;
c=*x;
*x=*y;
*y=c;
}
交換函數(shù)很好寫(xiě)。
比較難的讀文件。文件格式 與 讀語(yǔ)句要 相配。 特別是 多余 的 空行和回車(chē)鍵。
調(diào)試時(shí)用 printf 語(yǔ)句 檢查 讀得對(duì)不對(duì)。
fgets() 函數(shù)可用來(lái)讀整行的字符串,含回車(chē)鍵。
#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ù)間只有一個(gè)空白行,則用它跳過(guò)。
}
fclose(fp);
return 0;
}
要用函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的交換,則函數(shù)參數(shù)必須定義為指針形式,否則函數(shù)中對(duì)數(shù)值的修改將不會(huì)影響主調(diào)函數(shù),這是C語(yǔ)言的規(guī)則。
所以,以整型為例,自定義函數(shù)書(shū)寫(xiě)如下:
void
swap_int(int*a,int*b)
{
int
t;
t
=
*a;
*a=*b;
*b=t;
}
void Swap(intx,inty)
{
int temp=0;
temp=x;
x=y;
y=temp;
}
int main()
{
int a=1;
int b=2;
Swap(a,b);
coutlt;lt;"a="lt;lt;alt;lt;endl;
coutlt;lt;"b="lt;lt;blt;lt;endl;
system("pause");
return 0;
}
運(yùn)行結(jié)果:
擴(kuò)展資料:
用指針交換:
void Swap(int*x,int*y)
{
int temp=0;
temp=*x;
*x=*y;
*y=temp;
}
int main()
{
int x=1;
int y=2;
Swap(x,y);
printf("x=%d,y=%d\n",x,y);
system("pause");
return 0;
}
運(yùn)行結(jié)果:
X=2;Y=1
將兩個(gè)數(shù)進(jìn)行互換的方法有兩種形式:
1、借助中間變量完成,此方法直觀,易理解,使用最多
2、不需要中間變量,通過(guò)變量身的運(yùn)算完成交換。
參考代碼:
方法1:
int a=2,b=3,t;
t=a; //先將a存儲(chǔ)到臨時(shí)變量t中
a=b; //將b存儲(chǔ)到a中
b=t; //將臨時(shí)變量中的原a值存儲(chǔ)到b中
printf("a=%d b=%d\n", a,b );
方法2:
int a=2,b=3,t;
a += b ; //把兩數(shù)之和存到a中
b= a-b ; //用兩數(shù)和減去b可得原a,存儲(chǔ)到b中
a= a-b ; //因?yàn)閎現(xiàn)在是原a值,所以,用兩數(shù)和減去b(原a)可得 原b,存儲(chǔ)到a中
此方法,還可以用異或運(yùn)算來(lái)實(shí)現(xiàn),原理相同。
#include"stdio.h"int swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}
main(){int x,y;printf("請(qǐng)輸入x與y的值,用空格隔開(kāi)\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);}
擴(kuò)展資料:
C語(yǔ)言是一門(mén)通用計(jì)算機(jī)編程語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫(xiě)出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱(chēng)MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開(kāi)發(fā)廠商用的C語(yǔ)言語(yǔ)法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語(yǔ)言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語(yǔ)法,稱(chēng)為ANSI C,作為C語(yǔ)言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語(yǔ)言的第三個(gè)官方標(biāo)準(zhǔn),也是C語(yǔ)言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。
C語(yǔ)言是一門(mén)面向過(guò)程的計(jì)算機(jī)編程語(yǔ)言,與C++,Java等面向?qū)ο蟮木幊陶Z(yǔ)言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:百度百科-C語(yǔ)言