這一段 i 為啥么是從8開始循環,temp好像也沒什么用啊
?for(i=8; i>=0; i--)
? ? {
? ? ? ? for(j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(arr[j] > arr[j+1])? ? ? //當前面的數比后面的數大時
? ? ? ? ? ? {
? ? ? ? ? ? ? ? double temp;? ? //定義臨時變量temp
? ? ? ? ? ? ? ? temp = arr[j];? ? //將前面的數賦值給temp
? ? ? ? ? ? ? ? arr[j] = arr[j+1];? ? ? ? ? ? ?//前后之數顛倒位置
? ? ? ? ? ? ? ? arr[j+1] = temp;? ? ? ? ? ? ? //將較大的數放在后面? ??
? ? ? ? ? ? }? ? ? ? ? ? ? ? ?
? ? ? ? }? ? ? ? ? ? ? ??
? ? }
2019-04-14
i=8是因為后面j<=i時if里調用arr[j]和arr[j+1]比較,j+1就可以調用到第十個數了;
temp是用來交換值的,arr[j]和arr[j+1]比較后,把大的那個賦給arr[j+1],如此循環大的值就會一步一步的移到最后面實現從小到大的排序。
2019-08-19
數組是從0開始算的,一共10個數,所以當子循環里面也為8的時候可以+1這樣子就可以把最大的數排在最后面了呀
建議自己跟著程序走一遍
2019-05-03
因為數組arr[]里有10個元素,i是元素的下標,數組第一個元素是arr[0];i=8,也就是數組里面倒數一第二個元素。
上面的圖是剛才隨手畫的;如果有N個元素
第一次冒泡,比較n-1次;、
第二次冒泡,比較n-2次;
第n-1次冒泡,比較1次;
temp就是一個盒子,先把前面的元素放盒子里,再把后面的元素給前面,最后從從盒子里把值給后面的元素,這樣就換元素了,C是不能直接把兩個值互相替換的,
應該是這樣的吧?