c語言排序,從大到小for i 0 iN 1 i和for j i jN j不懂,尤其是為什麼j i

時間 2021-08-30 10:45:16

1樓:沒有響應

這個是冒泡法......

第一層迴圈是控制已經排號需的陣列

第二層迴圈每迴圈一次就把一個最大數拍到陣列的最前邊所以當第一次迴圈玩以後 array[0]裡就是陣列裡最大的數第二次迴圈的時候就直接從 array[1]開始了 所以就是 j=i

2樓:匿名使用者

這個排序是選出最大的數放到陣列的前面,第一次迴圈,選出一個,然後第二次迴圈的時候,j=i,這樣就不用再去判斷第一個數的大小了,因為第一個數已經是選擇出來的最大數了。明白了嗎?舉個例子吧,3,2,5,4比較大小,第一步排序後是5,2,3,4,然後第二步比較2,3,4就行,5不用參與到程式中了。

3樓:草摩沙可

i=j之後才能讓array[j]從array[i]開始取值,然後隨著j不斷增大,將第j+1,j+2,j+3。。。。。到j+n(j+n+1=n)個數與第j個數比較大小。即先讓第一個數與後面的數進行比較,在讓第二個數與後面的數比較,依次往後類推。

4樓:風雨兼程樂園

每一次與它之後的一個進行比較,然後將大的數放到小數後,一次後移一個,冒泡法

c語言氣泡排序法中,for(i=0;ii;j--),為什麼j>i呢?

5樓:匿名使用者

j>i是為了從大到小排序,如果是j

6樓:泥寄竹時女

for(i=1

;ii;j--)表示從陣列最後元素依次往前比較,每一次迴圈需要比較n-i次

c語言中:for(i=0;i<3;i++) for(j=0;j<3;j++)是什麼意思 30

7樓:四舍**入

是一個雙重迴圈。

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈。

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次。

for遍歷0到9之間的數字,for迴圈由迴圈體及迴圈的終止條件兩部分組成。

8樓:會飛的小兔子

c語言中:for(i=0;

i<3;i++)for(j=0;j<3;j++)是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次、

for遍歷0到9之間的數字

for(;i<10;i++)

printf("\n");

//此時i的值是10

printf("i=%d\n",i);

擴充套件資料for迴圈體外定義變數

#include

intmain()

printf("\n");

printf("i=%d\n",i);

intj=0;

for(;j<10;)

printf("\n");

printf("j=%d\n",j);

return0;}

9樓:

這是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈;

先迴圈第一個for i=1 j=1,2,3 i=2 j=1,2,3 i=3 j=1,2,3一共3*3執行9次。

for迴圈由迴圈體及迴圈的終止條件兩部分組成,for迴圈其在各種程式語言中的實現與表達有所出入,但基本為以c語言和pascal語言代表的兩種形式。

擴充套件資料

for迴圈中的變數可以是一個也可以是多個,不要侷限於一個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了。

for迴圈中語句可以為語句體,語句體外加大括號"{}"將參加迴圈的語句括起來。 for迴圈的三個表示式都是逗號表示式,這樣來說,其實每個分號表示式可以由幾個逗號表示式構成,中間用",」隔開,最後以「;」結束。

10樓:匿名使用者

迴圈從3開始,每次j減1,當j=0時,迴圈條件不滿足,因此只巡檢3次;

這種寫法很不好,不推薦使用。

11樓:

for(j=3;j;j--)

寫為for(j=3;j>0;j--) 這樣可以讓人更明白意思

意為從3開始迴圈,每次自減1,到0不滿足條件就跳出迴圈了

12樓:孤獨一客人

這是一個雙重迴圈

格式for(i=0;i<3;i++)

13樓:匿名使用者

這是一個雙重迴圈,通常我們會在迴圈中加個大括號

for(i=0;i<3;i++)

其中i從0到2,i取一個值,j就從0取到2,共迴圈9次

能不能告訴我在c語言,氣泡排序中內迴圈裡 9-j是什麼意思 for(i=0;i<9-j;i++)。謝謝!

14樓:匿名使用者

10個數,只要比較9趟即可全部排序,所以第一個for()迴圈是for(j=0;j<9;j++)。

for(i=0;i<9-j;i++)的意思是每一趟 兩兩比較的次數 ,如 j=0時,即第一趟,10個數。兩兩比較9次,然後依次如此下去.......

15樓:匿名使用者

當j=0時 9-j=9 通過內部的for迴圈最後把最大值賦值給a[9]當j=1時 9-i=8 把最大值賦值給a[8]------------------------------當j=8時 9-8=1 最大值賦值給a[1]剩下的就是a[0] 如果沒有9-j 那麼 你不能保證前面已經所得最大值在最後面的、基本就是這個意思!

16樓:匿名使用者

for(i=0;i<9-j;i++)你是從小到大排序的。每一次排序都會把最大的排到最後,第二次就不用比較它了因此比較剩餘9數中的最大之後是比較剩餘8個等等類推。其實for(i=0;i<9;i++)這樣也正確,之所以那樣是為了提高效率罷了。

17樓:召辭

j<9是隻需排8趟,每趟確定一個最值,當二重迴圈時每次都會少比較一個數,所以9-j

c語言for(j=1;j<=9;j++) for(i=0;i<=9-j;i++) 這兩句到底咋個迴圈?

18樓:匿名使用者

前面兩個迴圈不解釋,如果前面你都不明白那下面的你不用看了。回去先看看書好了。

for(j=1;j<=9;j++)

for(i=0;i<=9-j;i++)

第一次執行外層迴圈for(j=1;j<=9;j++),j為1,小於等於9,執行迴圈體。然後進入內層迴圈for(i=0;i<=9-j;i++),此時j為1,所以內層迴圈的條件判斷為i小於等於9-1,按照這個條件執行迴圈。當i==9的時候退出內層迴圈,執行外層迴圈第三個表示式,執行後判斷迴圈條件仍然滿足,繼續執行。

此時j為2,內層迴圈j的條件為j<=9-2。按照這個順序完成迴圈的執行。

迴圈執行次數為

外層迴圈執行9次

內層迴圈在外層迴圈第一次執行的時候執行9次,第二次8次 。第三次7 。。。。。。

19樓:樂跑小子

這是一個雙重迴圈

for(i=0;i<9;i++)

其中for(j=0;j<9;j++)是for(i=0;i<9;i++)的內嵌迴圈

i從0到9,i取一個值,j就從0取到9,共迴圈9次

20樓:匿名使用者

for(j=1;j<=9;j++)

for(i=0;i<=9-j;i++);前面迴圈9次,每迴圈一次後面的迴圈少一次。 表述的有點不明,你慢慢理解。

求c語言中for(i=0;i

21樓:晏永衡翠柏

兩個迴圈的次數是一樣多的,都是n-(j+1)次,但在迴圈過程中i的值不一樣

前者是0,1,2

……n-(j+1)-1

後者是j+1,j+2,j+3……n-1

c語言 for(i=0,j=10;i

22樓:匿名使用者

for(;;)迴圈中間的語句是迴圈結束的條件,是個bool值,true和false, i逗號表示式:就是逗號分隔的若干個表示式,逗號表示式最後的結果是 最後一個表示式的值 也就是i-j的值 c語言中 非0為真,0為假 也就是i-j 為0整個迴圈就結束了

23樓:匿名使用者

判斷迴圈是否結束的條件,i小於j

24樓:匿名使用者

當i小於j時迴圈結束

c語言設初始值中for(i=0;i

25樓:

for(i=0;ifor(i=0;i如果 用上面的2種迴圈進行控制檯輸出 * 顯示下效果,會更明顯。

#include "stdio.h"

void main()

printf("\n");

}printf("第二種迴圈效果:\n");

for(int i=0;i

printf("\n");}}

效果圖是

26樓:匿名使用者

第一個是內嵌for做的迴圈次數等於外部迴圈的次數,第二個內嵌for次數少於外部迴圈次數較多。(內嵌j初始值是每次比外部i+1)

27樓:匿名使用者

i是變化的,所以每次迴圈到j=i+1,j就變了,不一定是1了

28樓:軍軍

後一個for語句不同,一個從1開始,一個從i開始

29樓:匿名使用者

第一個內嵌for每次都從1到m迴圈,而第二個則從i+1開始到m,i是變化的

c語言 關於for(i=n-1;i>=0;i--)這個以及以下的這些是什麼意思?

30樓:匿名使用者

這段程式說明:

陣列a有n個元素,陣列b也是;

陣列a中存放了n個資料;

程式前面需要將變數j賦初值0;

程式作用是將a中的資料按照倒序存放到陣列b中,即b[0]=a[n-1]; b[1]=a[n-2]; ...; b[n-1]=a[0];

31樓:

i從n-1迴圈遞減到0 將陣列a反序傳給陣列b 總的來說 就是把陣列a的順序反過來

32樓:

總的意思是將陣列a從下標n-1到0的各個單元的內容複製到陣列b從某個單元開始的n個單元中.

第一行:設定控制變數i,使其從n-1開始,每迴圈一次減1,直至0第二行:迴圈體的開始

第三行:對每次迴圈,將a[i]的值賦給b[j]第四行:對變數j自加1,以指向b的下一個單元第五行:迴圈體的結束

33樓:匿名使用者

將陣列a中的數a[0]到a[n-1],逆序存到陣列b中,即b[0] = a[n-1],b[1] = a[n-2]...b[n-1]=a[0]

34樓:木星沒有木

迴圈初始條件i賦值為n-1,終止條件為i大於等於0,步長為i--,就是每次i從n-1減少1,直到0

迴圈體(括號裡面兩行,每次迴圈都執行):

將a陣列位置 i 裡面的元素放到b陣列對應位置 j 空間,再 j+1這個大概是陣列裡面數的複製之類的函式吧

35樓:

這個與for(i=0;i=0;i--)

這個可以是把資料a複製給b,可以用來排序

36樓:匿名使用者

就是講陣列a的值逐個賦值個陣列b

c語言中for i 5 i i與for i 5 i0 i為什麼迴圈次數一樣了

for i 5 i i 與for i 5 i 0 i 的迴圈次數是不一樣的,第二個比第一個多迴圈一次。因為第一個的迴圈條件 i 表示 i 不為0時迴圈條件成立,故迴圈5次結束 而第二個迴圈條件i 0表示 i 大於或等於0時迴圈條件成立,故迴圈6次結束 for i 5 i i 中,中間那個i作為一個布...

C語言中 for i 0 i 3 ifor(j 0 j 3 j是什麼意思

道清逸森君 這是一個雙重迴圈,通常我們會在迴圈中加個大括號 for i 0 i 3 i 其中i從0到2,i取一個值,j就從0取到2,共迴圈9次 符元綠童書 c語言中 for i 0 i 3 i for j 0 j 3 j 是一個雙重迴圈。for i 0 i 3 i 其中for j 0 j 3 j 是...

C語言程式設計 用陣列輸入整數,從大到小排序,然後輸出下標

幻兒 你是用手機提問的 回答字數的上限是100字 程式編出來超過了字數 建議你用電腦提問 上限是9999字 要不就把郵箱發上來 我給你傳到郵箱裡 要不程式不能完整顯示到頁面上啊 匿名 熱心 void goleft int x,int y void goright int x,int y 真的不能再低...