C語言實現兩數交換函式

2021-06-05 18:04:40 字數 723 閱讀 2770

我們可以引入乙個簡單的中間變數t進行兩個數值交換。

int t;

t=x;

x=y;

y=t;

然而在swap(int x,int y)被呼叫時,實參進行副本初始化,函式並沒有訪問呼叫傳遞的實參本身,因而也不會修改實參的值。

那麼下列函式

void swap(int x, int y)

將達不到交換的目的。

在c++中我們可以使用引用形參達到目的:

void swap(int &x, int &y)

那麼在c語言中怎麼實現交換函式呢?

利用指標值交換實現

#includevoid swap(int *x, int *y)

int main()

ps:其他的一些交換數值方法

x=x*y;

y=x/y;

x=x/y;

x=x+y;

y=x-y;

x=x-y;;

x=x^y;

y=x^y;

x=x^y;

C語言 C 實現兩數交換函式

首先我們可以先引入乙個中間變數temp進行數值交換。下面的這個函式能不能達到函式交換的目的?void swap int x,int y int main 執行一下 我們發現這個函式是不能完成交換的功能的,這是因為在swap int x,int y 被呼叫時,實參進行副本初始化,函式並沒有訪問呼叫傳遞...

兩數之和 c語言實現

題目描述 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 解題思路 我原先想的是先將陣列的值儲存到乙個...

兩數相加 c語言實現

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題思路 我先開始的思路是,再建立乙個返回鍊...