1樓:江城之外
這個函式的作用是由使用者輸入10個數,再將這11個數按從小到大排列並輸出。
for(i=1;i<11;i++)
scanf("%d",&a[i]);
這裡是輸入10個數,每輸入乙個數按回車後再讓使用者輸入乙個,直到滿十個為止。
for(j=1;j<=9;j++)n-1次冒泡*/
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
max=a[i];a[i]=a[i+1];a[i+1]=max;}
先說下面這個 for(i=1;i<=10-j;i++)它的作用是:
通過下面的判斷和賦值,把最大的數放到最後面去,比如j==9的時候,a[9]的值將會是最大值,而前面的數a[1]到a[8],大小則是不固定的,而要做到能排序的功能,則需要前面的乙個for來處理,for(j=1;j<=9;j++)n-1次冒泡*/
它使下面的部分每次判斷的範圍減小1,因為上面說到了for(i=1;i<=10-j;i++)的作用是找出最大的數並放到最後面去,所以最後乙個數就不用比較了,這樣可以提高程式執行的效率。
最後乙個for(i=1;i<11;i++)是輸入所有的a的成員,因為a有十個成員嘛,所以要乙個迴圈一下,把所有的輸出來。
說的比較亂,將就看一下。
ps:你可能沒搞清楚這段程式的詳細的作用,如果你知道了,應該如理解。
再ps:在程式中多加一些列印訊息可以加讓你更清楚的瞭解程式的執行過程,這樣也會加快你的學習!
2樓:阿四哥
c語言的陣列概念的學習,通過for迴圈輸出列印陣列。
3樓:陽光上的橋
因為你要輸入、輸出10個數,用for要簡單一點,否則你就得用下面的語句輸入和輸出:
輸入語句:for(i=1;i<11;i++)scanf("%d",&a[i]);
等效於輸出語句:for(i=1;i<11;i++)printf("%d ",a[i]);
等效於:printf("%d %d %d %d %d %d %d %d %d %d ",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]);
c語言for語句求大神指教
4樓:風捲流年
這個的話首先介紹下for語句裡邊的三個引數:
for(引數1;引數2;引數3)
引數1一般是用來為迴圈變數賦初始值(i=0)引數2 的結果則是作為迴圈是否繼續的判定依據(s1[i]&&s2[i];)
引數3 一般是迴圈變數的 自變表示式(i++)通俗的講。
引數1是迴圈變數的初始化。
引數2是控制迴圈的迴圈上限。
s1 和s2是兩個陣列,而迴圈變數i在這裡起到了標識陣列下標的作用。
例如:第一次迴圈。
這時候先會取出s1[0]的值,判斷其是否為true (c中0為false,非零為true),如果為true則判定s2[0]是否為true,然後將兩個結果進行 「與」判斷 判定結果決定迴圈是否繼續進行。
5樓:
s1[i]&&s2[i], s1和s2是兩個陣列吧。這句是判斷如果兩個陣列的第i個元素是否為0(假)。滿足的話就執行迴圈裡的語句,然後i加1繼續判斷。
6樓:
如果s1,s2是字串的話,那麼迴圈結束後,i 就是較短的那個字串的長度.
7樓:
i一直+1迴圈 直到s1[i]或s2[i] 這2箇中有乙個是0就跳出迴圈。
8樓:紅色縹緲
當s1[i]s2[i]同時為真則執行迴圈,否則退出迴圈。
9樓:匿名使用者
條件,如果s1[i]為真且s2[i]為真就執行,乙個為假就不執行。
C語言陣列中的刪除元素怎麼寫,C語言陣列中的刪除一個元素怎麼寫
直接把元素後一位覆蓋前一位就行了 最後把陣列最後一位清空即可 include main c語言中怎麼刪除陣列中的一個元素 方法 刪除就是將其下 copy標所在位置的中的內容置為空 也就是0 然後從此位置開始,後面的內容前移,再把最後那個位置的置為空 就是0 前移無非就是 類似 arr i 1 arr...
C語言陣列下標,C語言陣列的下標
下標可以是變數 也可以是常量。直接說a 0 a 1 a 2 a 3 這樣的下標就是常量。對於訪問來說,不在意是變數還是常量,系統只是需要一個值,作為偏移量 不管是變數還是常量,訪問的時候 肯定是一個特定值,而系統要的 無非是這樣一個偏移量而已。c語言陣列的下標 樓主你好。注意a是常量,不要被別人誤導...
C語言新手陣列問題,C語言陣列問題
a i j a i j 理解運算優先順序就好了,裡面的那個括號 可有可無 原解析有誤。二維陣列其實就是i個具有j個元素的一維陣列,因此a i j a i j a i j c語言陣列問題 你的 問題有以下幾個 1 min和max沒有初始化 2 對於a min 和a max 沒有做迴圈參考 如下 inc...