當前位置:首頁 » 編程語言 » c語言交換

c語言交換

發布時間: 2022-01-09 13:00:10

c語言中是怎麼實現交換的···

交換成功的因為他是地址傳遞,交換不成功是值傳遞,值傳遞的內在含義就是在函數體內生成x,y復製品,只是復制出來的x,y進行交換,函數運行結束,對原值沒有改變。

❷ C語言編程,如何做交換

#include<stdio.h>
#include<string.h>

#define N 7

void main()
{
int i=0;
int num;
char a[N],b[64];
int count;

printf("請輸入要加密的數據:\n");
scanf("%s",a );
a[N-1]=0;

printf("加密後的數據是:\n");
memset( b,0,sizeof(b) );
conut = strlen[a];
for( i=0;i<count;i++ )
{
b[i] = a[count-i-1];
}
printf("%s\n",b);
}
用字元串比用int型好處理多了。

❸ C語言關於交換語句

……你寫成T=A=B……是什麼意思你自己理解下吧……
T=A=B語句的意思:因為=的運算順序是左結合的,所以這個語句的意思就是:先把B的值賦給A,然後A把現在的值賦給T,最後T就是B的值了……

❹ C語言交換兩個數字

首先要捋順一下,先看第一段程序。這段程序的目的就是為了將兩個變數的數值進行交換。此時要明白指針的使用方法,這里的交換函數是void swap(int &x, int &y),即無返回值的函數,函數傳遞的參數是int &x和int &y,這兩個東西是什麼呢?這兩個東西是定義的引用,而這個我們就可以理解為是兩個用來存儲傳遞進來的參數的地址的變數(這么說可能有點亂,其實就是將調用該函數是時傳遞進來的變數的地址給這兩個參數),所以如果在這個swap函數中對這兩個參數操作時,實際上就是對傳遞進來的那兩個變數進行操作。至於你問的關於整型的問題,這個也很好理解,在c語言里地址就是整型的,而這兩個變數定義的時候也是int整型的,所以無論是地址還是值都是整型的,而又因為*a和*b是一個指針指向的值,所以*a、*b是整型,而&a、&b是指針的地址,所以也是整型。

接下來看你第二段程序(你自己寫的這個):
看程序前請仔細查看關於函數方面的資料,至於你這個return為什麼是錯的這個問題其實很簡單,首先要了解一個函數的定義,定義函數簡單的可以分為有返回值和無返回值的,有返回值的定義類似這樣
int abc();
float bcd();
如上所示,函數名什麼的都好理解,函數名前面的"int"和"float"是指函數返回的類型,即你這個函數在執行完之後需要用return語句返回一個值,而這個返回類型就是指這個返回值的類型。
還有一種是不需要返回值的,即
void abc();
void cde();
這類函數在執行完成後不需在最後添加return語句來返回值,如果添加了也用不了。
而你寫的這個函數定義的是
int swap(int x,inty)
這里聲明的是一個需要返回整型變數的函數,而這個函數里你的返回值語句return後沒有跟任何變數或值,程序不知道你返回的是什麼東西,所以會報錯,這里一般都會填寫return 0;表示程序執行完成。當然這個0也可以換成整型的變數。

最後說一下你這個程序,你這個程序在執行完成後是不會將需要交換的變數a和b的值進行交換的。這個關繫到形參和實參的概念,請仔細查看書籍或看一些例子,你這個只是將形參的值交換了,真正的需要交換的值不會改變,也就是說你只是將a和b的兩個值復制了一份,然後將復制了的那個交換了,當swap函數完成後又將復制了的那份刪除掉了,所以說,不管怎樣最初的a和b都沒有受到任何影響。

❺ c語言中如何實現兩個字元的交換

有多種方法:
1 最常用的,中間變數法。
使用第三個中間變數交換a,b的值。
char a='-', b='+',c;
c = a;
a = b;
b = c;
實現a,b值的交換。
2 利用加減法交換。
交換a,b值可以用
a+=b;
b=a-b;
a=a-b;
3 利用異或交換:
交換a,b值的代碼為:
a^=b;
b=a^b;
a=a^b;

❻ C語言數值的交換

樓上的這個
a = a+b;
b = a-b;
a = a-b;
是個方法,是符合我們數學思維的方法,也是最初接觸C語言的人可能想到的方法。 但是這樣編程很不直觀,不如t=a;a=b;b=t;來得快。

似乎在C++中有swap(a, b)模板函數,直接實現a,b交換。

想玩高級一點的話,可採用「換標不換值」的方法,用數組元素作為數組的下標,這種方法換邏輯不換存儲。

#include <stdio.h>
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語言中怎樣交換兩個字元串

C語言中交換兩個字元串需要藉助strcpy函數或者使用自定義交換函數進行交換

如交換a,b數組中的字元串代碼:

chara[10]="abed",b[10]="efg",t[10];
strcpy(t,a);//a復制給t
strcpy(a,b);//b復制給a
strcpy(b,t);//t復制給b

附:strcpy函數詳情

原型聲明:

char*strcpy(char*dest,constchar*src);

頭文件:

#include<string.h>和#include<stdio.h>

功能:把從src地址開始且含有NULL結束符的字元串復制到以dest開始的地址空間

說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。返回指向dest的指針。

❽ C語言中的交換問題

首先a=a+b.
因此,
b=a-b=(a+b)-b=a,
現在b被賦值為a了,a的值還是a+b,
所以
a=a-b=(a+b)-a=b.

❾ c語言如何編寫兩個數字數值交換

我們用C語言的時候,經常需要將兩個數字交換,那麼如何實現呢?下面小編給大家分享一下。
工具/材料
Dev C++
01
首先我們在Dev C++軟體中新建一個C語言項目,如下圖所示
02
接下來我們在C語言文件中聲明兩個數字並輸出,如下圖所示
03
然後用一個中間變數對他們進行交換,如下圖所示
04
最後運行編寫好的C語言文件,我們就可以看到如下圖所示的交換結果了

熱點內容
玩qq三國要什麼樣的電腦配置 發布:2024-09-20 00:50:57 瀏覽:445
樹莓派zero編譯驅動 發布:2024-09-20 00:50:56 瀏覽:483
上傳文件文件夾找不到 發布:2024-09-20 00:26:32 瀏覽:915
承台箍筋加密區 發布:2024-09-20 00:26:31 瀏覽:228
筆記本什麼配置能流暢運行cf 發布:2024-09-20 00:14:19 瀏覽:952
實測華為編譯器 發布:2024-09-19 23:50:52 瀏覽:822
linux匯總 發布:2024-09-19 23:46:39 瀏覽:453
阿里雲伺服器環境搭建教程 發布:2024-09-19 23:21:58 瀏覽:837
黃色文件夾圖標 發布:2024-09-19 23:19:22 瀏覽:684
mysql資料庫導出導入 發布:2024-09-19 23:00:47 瀏覽:183