C語言求助,如圖怎麼實現元素互換?

時間 2021-05-31 21:48:30

1樓:chainhelen

不需要 j

while(i < SIZE / 2)

還一種寫法,比較hack點,也可以看看

#include

#define SIZE 5

void printArr(int a, int n) ;

printArr(a, SIZE);

for (int i = 0;i < SIZE / 2;i++)printArr(a, SIZE);}

2樓:阿賴呱呱呱

同新手,個人意見是,如果只有前面幾句,順序是不會變化的,因為元素互換會一直進行直到最後乙個元素,那麼每乙個元素會被交換兩次,順序正好不變。應該設定再中間位置停止迴圈。

3樓:zkl1001

業餘的,簡單說兩句:

原題中:

while(i

:假設有

5個元素:那麼

i初始取值=0

j初始取值=4

ijj-

i第1次

044//交換了0----4第2

次143

//交換了1----3第3

次242

//交換了2----2 (交換無意義但是不影響結果)i++之後341

//必須結束

我們再分析下

:假設有

6個元素:那麼

i初始取值=0

j初始取值=5

ijj-

i第1次

055//交換0----5第2

次154

//交換1----4第3

次253

//交換2----3i++

之後352

//必須結束

所以原題的空白應該填寫if(

i>(j

-i))或者if(

i>=(j

-i))break;或者

if(i>=((j

/2)+

1))break;等等

大數的階乘在C語言中怎麼實現呢?

include include include typedef struct Array void initArray Array a unsigned intinitSize void insertArray Array a chare a array a used e void freeArra...

c語言的加減乘除是怎麼實現的?

大致了解簡單的過程,我們知道機器執行的都是機器碼,加減乘除這些在硬體層面CPU都提供對應的指令 我們能讀懂的是彙編指令 編譯器在編譯的時候直接將高階語言的加減乘除轉化為對應的CPU指令,完成對應的運算。比如intel彙編中 加法,addl 減法,subl 乘法,imull 除法,idivl 比如我寫...

c語言怎麼實現大數相加,具體是怎麼想的和實現的?

番茄.go 轉化成字串來模擬運算就好了,了解加法器的原理嗎?可以那樣搞補充 思想 兩個多位數相加,從低位開始,每位相加都進製然後得出結果 每位相加的時候需要考慮從低一位得到的進製的值例如 7689 8343 從低位開始 3 9 得到結果值的個位2並且向上產生了進製然後十位 8 4 得到的結果是12再...