c語言交換值
⑴ c語言 編一程序 交換兩個變數的值(用指針做函數參數)
#include <stdio.h>
void Swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
printf("a=%d,b=%d ",a,b);
}
int main()
{
int a = 5;
int b = 10;
printf("a=%d,b=%d ",a,b);
Swap(a,b);
printf("a=%d,b=%d ",a,b);
return 0;
}
(1)c語言交換值擴展閱讀:
形參和實參的特點
1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。
2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。
3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。
4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
網路-形參
⑵ 用C語言編寫程序實現兩個整數交換值
#include<stdio.h>
intmain()
{
intx,y,t;
printf("請輸入二個整數: ");
scanf("%d%d",&x,&y);
printf("輸入的二個數為:x=%d,y=%d ");
t=x;
x=y;
y=t;
printf("交換後的二個數為:x=%d,y=%d ");
return0;
}
⑶ c語言如何編寫兩個數字數值交換
我們用C語言的時候,經常需要將兩個數字交換,那麼如何實現呢?下面我給大家分享一下。
工具/材料
Dev C++
- 01
首先我們在Dev C++軟體中新建一個C語言項目,如下圖所示
- 02
接下來我們在C語言文件中聲明兩個數字並輸出,如下圖所示
- 03
然後用一個中間變數對他們進行交換,如下圖所示
- 04
最後運行編寫好的C語言文件,我們就可以看到如下圖所示的交換結果了
⑷ 在C語言中如何將兩個數進行互換
將兩個數進行互換的方法有兩種形式:
1、藉助中間變數完成,此方法直觀,易理解,使用最多
2、不需要中間變數,通過變數身的運算完成交換。
參考代碼:
方法1:
int a=2,b=3,t;
t=a; //先將a存儲到臨時變數t中
a=b; //將b存儲到a中
b=t; //將臨時變數中的原a值存儲到b中
printf("a=%d b=%d\n", a,b );
方法2:
int a=2,b=3,t;
a += b ; //把兩數之和存到a中
b= a-b ; //用兩數和減去b可得原a,存儲到b中
a= a-b ; //因為b現在是原a值,所以,用兩數和減去b(原a)可得 原b,存儲到a中
此方法,還可以用異或運算來實現,原理相同。
⑸ C語言中,怎樣不用中間變數而互換兩個變數的值呢
有兩種方式可以不使用中間變數,交換同類型的變數a,b的值:
1 .使用加法操作
a+=b;
b=a-b;
a -= b;
2 .使用異或操作:
a^=b;
b^=a;
a^=b;
⑹ c語言交換變數a和b的值是什麼
c語言交換變數a和b的值是:p、q,但沒有給它們分配地址。
後面的程序,p、q分別指向了a、b的地址,所以可用。這個與媒介無關,計算機原理中很清楚地講到,內存地址和內容,這個是C語言的基礎。
c語言交換變數a和b的值是互相交換的。交換在常規辦法中引入第三個變數是為了防止在賦值過程中丟失信息。如果有辦法在賦值過程中保持信息,就不需要另外的變數了。就比如這里的a先等於b-a, 再讓b=a。
有兩個變數a 和b,想要交換它們的值,能不能這樣操作呢?
不能,這樣操作的意思是把a的值放到b中,然後b中的值已經被覆蓋掉了,已經不是b原來的那個值了,所以是沒有意義的。
既然不能這樣操作,可以先把b的值備份一下,這樣就可以覆蓋了。然後設置一個變數t,先把b中的變數備份到t中,t=b。再把a中的變數放到b中,b=a。最後把備份的b放到a中,a=t。
⑺ C語言交換變數值的幾種方法
方法一:三變數交換。
#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
intt=a;a=b;b=t;
printf("%d%d ",a,b);
return0;
}
方法二:加減交換
#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d%d ",a,b);
return0;
}
方法三:異或交換
#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
a=a^b;b=b^a;a=a^b;//可寫成a^=b^=a^=b;
printf("%d%d ",a,b);
return0;
}
方法四(黑盒測試下):不交換
#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
printf("%d%d ",b,a);
return0;
}
⑻ c語言交換兩個變數的值是什麼
c語言交換兩個變數的值是我們學習C語言常見的問題。
交換兩個變數的值 交換兩個變數的值是我們學習C語言常見的問題,通常我們採取的方式是定義中間變數,通過中間變數交換這兩個變數值,其中可以通過引用、地址傳遞完成變數值交換。
c語言定義
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
⑼ C語言數值的交換
樓上的這個
a
=
a+b;
b
=
a-b;
a
=
a-b;
是個方法,是符合我們數學思維的方法,也是最初接觸C語言的人可能想到的方法。
但是這樣編程很不直觀,不如t=a;a=b;b=t;來得快。
似乎在C++中有swap(a,
b)模板函數,直接實現a,b交換。
想玩高級一點的話,可採用「換標不換值」的方法,用數組元素作為數組的下標,這種方法換邏輯不換存儲。
#include
void
main()
{
int
a=10,b=20;
int
array1[2]
=
{10,20};
//存a、b值
int
array2[2]
=
{0,1};
//存下標
b
=
array1[array2[0]];
a
=
array1[array2[1]];
printf("a=%d,
b=%d\n",a,b);
}
這個方法在對結構體數組值交換中非常好用!因為結構體數組一般每個成員都有很多個值,如:
struct
student
{
int
num;
double
score;
char
name[20];
}stu[5]={{1,98,"ziguowen"},{2,88,"dongda"},{3,78,"haha"}};
//交換stu[0]和stu[1],需要
int
n;
double
s;
char
n[20];
n
=
stu[0].num;
stu[0].num
=
stu[1].num;
stu[1].num
=
n;
s
=
stu[0].score;
stu[0].score
=
stu[1].score;
stu[1].score
=
s;
strcpy(n,
stu[0].name);
strcpy(stu[0].name,
stu[1].name);
strcpy(stu[0].name,s);
//而用下標的話,一個賦值語句即可,直接交換stu[0]
和
stu[1]
下標後全部交換!
⑽ c語言中三個整型數a b c怎麼進行值的互換
二個變數值的交換一般需藉助於一個輔助變數來完成的。
int
a=3,b=4,t;
通過以下的三個語句就能把a,b的值互換(這種操作有點像把二個瓶里的液體交換時,要藉助於一個空瓶):
t=a;
a=b;
b=t;
不太清楚什麼是「a
b
c值的互換」。如果是要把a=1,b=2,c=3「輪換」為a=2,b=3,c=1的話,
那就用下面的語句實現:
t=a;
a=b;
b=c;
c=t;
如果是要把任意大小順序的三個變數,通過交換變為從小到大排列,可以採用以下的程序段:
int
a,b,c,t;
scanf("%d
%d
%d",&a,&b,&c);
if(a>b){t=a;
a=b;
b=t;}
if(a>c){t=a;
a=c;
c=t;}
if(b>c){t=b;
b=c;
c=t;}
printf("從小到大的排列是:%d
%d
%d\n",a,b,c);