求助,C語言用呼叫函式解決兩個數字交換

時間 2021-06-25 15:02:13

1樓:匿名使用者

void swap(int i,int j)

這種方法是向子函式傳值,i,j 是區域性變數,當子函式呼叫完後就被釋放了,傳不到主函式中

而將i,j 定義為全域性變數,程式中任何地方對i,j 的呼叫修改都會改變i,j 的值

2樓:匿名使用者

交換整型或字元型變數,我從不用函式,在記憶體中直接用位運算多好,不占用系統資源,速度上還有絕對的優勢!

**:int a=4;

int b=5;

b^=a;

a^=b;

3樓:匿名使用者

這裡你要弄清楚形參與實參的區別,不管是void swap(void )和void swap(int i,int j )生成的變數都是臨時引數,不會更改向函式傳遞的引數值,c語言實現你說的功能需要用到指標,函式該這樣寫:

void swap(int* i,int* j )主函式這樣寫:

void main()

4樓:匿名使用者

應該是你的第一行設定的全域性變數的問題。你把全域性定義的int i,j;這個,放到主函式裡看看。

5樓:

你原來的函式是無參的,需要傳遞兩個引數進去肯定不能是void swap(void )啊

c語言函式的使用,定義乙個交換函式 實現2個數字的交換。

6樓:凌亂心扉

執行結果

:用指標交換:

void swap(int*x,int*y)int main()

執行結果:

x=2;y=1

7樓:匿名使用者

**應該如下,函式需要用指標來傳遞引數。

#include

int sub(int *x,int *y)void main()

8樓:匿名使用者

a,b經過函式的呼叫後已經將值傳遞給了x,y,所以輸出x,y也就是輸出a,b。

子函式的值就是x,y,所以輸出子函式的值就是輸出x,y,因此不用返回x,y。

c語言怎麼用自定義函式將兩個數交換

9樓:雪v歌

要用函式實現兩個數的交換,則函式引數必須定義為指標形式,否則函式中對數值的修改將不會影響主調函式,這是c語言的規則。

所以,以整型為例,自定義函式書寫如下:

void swap_int(int*a,int*b)

c語言:呼叫函式,交換兩個變數的值。

10樓:

這個無法交換資料。

c語言函式引數的基本規則是值傳遞,所以傳遞時只能實現實參向形參的單向的、值的傳遞。這就是為什麼需要使用指標才能實現值交換的原因。

11樓:匿名使用者

函式的值傳遞機制是拷貝。。所以你函式裡的x和y只是你傳入的實參的副本而已。當然改不了了。

用指標就可以了,就算拷貝指標,值(位址)也是一樣的。

c語言用函式如何實現兩個數交換?

12樓:匿名使用者

#include"stdio.h"int swap(int *a,int *b)

main()

13樓:天平座de魚

c語言用函式如何實現兩個數交換的話?比較難發揮。

14樓:倒霉熊

#include

main()

printf("%d > %d\n",*za,*zb);

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

}int hanshu(int *x,int *y)

15樓:匿名使用者

int hanshu(int *x,int *y)這裡應把temp定義為int型

int temp;

temp = *x;

*x = *y;

*y = temp;

這樣就內對容了

16樓:溪貝溪貝

#include

void huhuan(int*, int*);

int main(void)

void huhuan(int*m, int*n)

c語言關於定義函式實現兩個數交換 10

17樓:紫月開花

要用bai函式實現兩個數du的交換,則函式zhi引數必須定義為指標形式,

dao否則函式專

中對數值的修改將不會影響屬主調函式,這是c語言的規則。所以,以整型為例,自定義函式書寫如下: void swap_int(int*a,int*b)

用自定義函式進行兩個數的交換(c語言)

18樓:匿名使用者

要用函式實現兩個數的交換,則函式引數必須定義為指標形式,否則函式中對專數值的修改將不會屬影響主調函式,這是c語言的規則。

所以,以整型為例,自定義函式書寫如下:

void swap_int(int*a,int*b)

編寫函式strcmp用主函式呼叫實現兩個字串的比較。int strcmp char s1char s

int strcmp char s1,char s2 else if p q else if p 0 q 0 if p 0 q 0 if p 0 q 0 int mystrcmp const char str1,const char str2 if ret 0 ret 1 else if ret 0...

c語言程式設計 輸入兩個陣列,每個陣列不超過元素,將只在陣列中出現的數全部輸出

意思就是a陣列中的數b陣列沒有唄.要自己寫才有有意思 雙層for迴圈 把a i 元素 和每個b元素if一下 設定一個計數器 如果對比10次計數器都沒增加 則輸出a i 元素.然後計數器歸零 再進入外部迴圈.如此反覆10次 然後再把a和b兌換下 再來一次上面的就能把b的元素輸出了. include s...

c語言輸入數用呼叫函式的方法從小到大排

風翼殘念 include void sort float a,int n int i,j,tmp for i 0 ifor j 0 jif a j a j 1 tmp a j a j a j 1 a j 1 tmp void main float a 5 int i printf 請輸入五個數 逗號...