c語言數據交換
A. 在c語言中如何將兩個數進行互換
將兩個數進行互換的方法有兩種形式:
1、藉助中間變數完成,此方法直觀,易理解,使用最多
2、不需要中間變數,通過變數身的運算完成交換。
參考代碼:
方法1:
inta=2,b=3,t;
t=a;//先將a存儲到臨時變數t中
a=b;//將b存儲到a中
b=t;//將臨時變數中的原a值存儲到b中
printf("a=%db=%d ",a,b);
方法2:
inta=2,b=3,t;
a+=b;//把兩數之和存到a中
b=a-b;//用兩數和減去b可得原a,存儲到b中
a=a-b;//因為b現在是原a值,所以,用兩數和減去b(原a)可得原b,存儲到a中
此方法,還可以用異或運算來實現,原理相同。
B. 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);
C. c語言中用函數交換兩個變數的值
c語言中用函數交換兩個變數的值方法是先將變數賦值給中間變數,然後中間變數再賦值給另外一個變數,程序如下:
#include "Stdio.h"
#include "Conio.h"
void swap(int x,int y)
{
int t,m;
t=x; //變數x賦值給中間變數t
m=y; //變數y賦值給中間變數m
x=m; //中間變數m賦值給變數x,將y的值賦值給了x。
y=t; //中間變數t賦值給變數y,將x的值賦值給了y。
}
main()
{
int a,b;
a=1,b=2;
swap(a,b); //調用交換函數
printf("%d,%d",a,b);
getch();
}
(3)c語言數據交換擴展閱讀:
C語言的語法結構:
1、順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如:a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子裡面的水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:c = a; a = b; b = c;執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。
順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算、輸出三步曲的程序就是順序結構。
2、選擇結構
對於要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。
選擇結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
3、循環結構
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤。
D. 關於C語言交換兩個數(有關指針)
在C語言中,通過函數參數傳遞,進行兩個數的交換,必須採用傳遞指針的方式,同時,在函數中,一定要對兩個指針中的數據內容進行交換才能達到交換實參地址中數據的目的。
如:
//正確的交換函數
voidswap1(int*p1,int*p2)
{
intp;
p=*p1;//通過*引用地址中的數據,進行交換
*p1=*p2;
*p2=p;
}
//錯誤的交換函數
voidswap2(int*p1,int*p2)
{
int*p;
p=p1;//這里進行改變的是形參的值,而形參只是實參的一個副本,形參本身的變化,是不能改變實參的值的!!
p1=p2;
p2=p;
}
PS:要正確認識C語言中的實參與形參,形參在使用中只是實參的副本,若形參是指針,我們可以通過形參改變實參地址中的內容,但無法改變實參本身的值!
E. C語言指針實現數據交換
void swap(int *x,int *y) x,y是地址
temp = *x; //temp的值是x地址指向的值
這么理解就明白了。
int a;
int *a2;
a = 5;
a2=&a;
*a2 = 6;
運行到這里a就是等於6,有沒有明白呢。
F. C語言程序題:數據交換,從鍵盤輸入a、b的值,輸出交換以後的值
//思路一:採用第三者中間變數
main()
{inta,b,t;
scanf("%d%d",&a,&b);
printf("交換前:a=%d,b=%d ",a,b);
t=a;
a=b;
b=t;
printf("交換後:a=%d,b=%d ",a,b);
}
//思路二:利用數學計算方法
main()
{inta,b;
scanf("%d%d",&a,&b);
printf("交換前:a=%d,b=%d ",a,b);
a=a+b;
b=a-b;
a=a-b;
printf("交換後:a=%d,b=%d ",a,b);
}
G. c語言如何編寫兩個數字數值交換
我們用C語言的時候,經常需要將兩個數字交換,那麼如何實現呢?下面小編給大家分享一下。
工具/材料
Dev C++
01
首先我們在Dev C++軟體中新建一個C語言項目,如下圖所示
02
接下來我們在C語言文件中聲明兩個數字並輸出,如下圖所示
03
然後用一個中間變數對他們進行交換,如下圖所示
04
最後運行編寫好的C語言文件,我們就可以看到如下圖所示的交換結果了
H. C語言 如何交換兩個字元型數據值
在C語言char 就是 unsigned int 類型。所以可以直接按照,整型的交換方法來進行。
例如下例:
請採納
I. c語言怎麼實現兩個數據交換
將兩個數進行互換的方法有兩種形式:
1、藉助中間變數完成,此方法直觀,易理解,使用最多
2、不需要中間變數,通過變數身的運算完成交換。
J. 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]
下標後全部交換!