#include stdio.h
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南召,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
void swap(int *p, int *q);//用傳地址的方法交換
void main()
{
int i, j;
scanf("%d%d", i, j);//從鍵盤輸入兩個交換的數(shù)
swap(i, j);//傳入i,j的地址
printf("i = %d, j = %d\n", i, j);//輸出交換后的兩個值
}
void swap(int *p, int *q)
{
int temp;//定義臨時變量 存放中間值
temp = *p;
*p = *q;
*q = temp;
}
注意:不能直接寫void swap(int i, int j);
因為那只是臨時變量,函數(shù)調(diào)用完后,便釋放空間,兩個值并沒有交換。
c語言中實參變量和形參變量之間的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)參數(shù)也要最循這一規(guī)則。調(diào)用函數(shù)不可能改變實參指針變量的值,但可以改變實參指針變量所指變量的值。
#includecstdio
char?s1[100000],s2[100000];
int?main()
{
gets(s1),gets(s2);
puts(s2),puts(s1);
return?0;
}
要下班了,你照著我這個程序改一下吧。
/*22_4:將兩個矩陣相加*/
#include stdio.h
void add(int x[][4],int y[4][4]) /*不需要返回值,a數(shù)組元素已被改變*/
{
int i,j; /*兩層循環(huán)變量*/
for(i=0;i4;i++)
for(j=0;j4;j++)
x[i][j]+=y[i][j];
return;
}
main()
{
int i,j; /*兩層循環(huán)變量*/
int a[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{1,1,1,1},
{1,1,1,1}
};
int b[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{3,3,3,3},
{3,3,3,3}
};
add(a,b); /*調(diào)用函數(shù)時如此簡單*/
/*輸出相加后的矩陣*/
printf("兩矩陣相加得:\n");
for(i=0;i4;i++)
{
for(j=0;j4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
這個是我在跟公司師傅學(xué)C語言寫的一個
C語言中swap函數(shù)是自定義的函數(shù),C標(biāo)準(zhǔn)庫里沒有swap函數(shù)。swap函數(shù)是用來交換的函數(shù),經(jīng)常在C語言中排序中會用到。
代碼示例:
#includestdio.h
void swap(int *a, int *b){
int t;
t = *a;
*a = *b;
*b = t;
}?
int main()
{
int a=23,b = 43;
printf("輸入的兩個要交換的數(shù)為:%d,%d\n",a,b);
swap(a,b);
printf("交換后的數(shù)為:%d,%d\n",a,b);
return 0;
}
程序運行:
擴(kuò)展資料
C語言中使用swap()函數(shù),要注意的是,想要交換a,b的值,其實就是相當(dāng)于要在函數(shù)中改變變量的值,要做到這一點,就需要向形式參數(shù)傳遞實際參數(shù)的地址了,因為這樣把變量的地址復(fù)制到函數(shù)中的變量里,它們指向的是內(nèi)存中的同一個地方,在函數(shù)中改變這個地方的值,那么外部的變量的值也就改變了。
參考資料:百度百科-C語言