2 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
cmp實際上是一個函數模板,sort在調用時,是一個通用的過程。你可以假想sort是一個小機器人,能夠在一個倉庫里將貨架上的貨物進行排序。你第一次要求機器人“按照大小排序”,于是機器人花了幾分鐘完成了大小排序,第二次你要求機器人“按照重量排序”,于是機器人再次回到倉庫,對同樣的貨物進行排序,不同的是這次并不按照大小,而是按照重量進行排序。
在這個的例子里,cmp函數決定了排序的方法,也就是重量、大小還是長度等等不同維度的東西。因為你的例子sort數據都是整數,因此看不出來這個函數的威力,如果輸入的數據是struct,每個數據由不同的屬性,比如上面例子的尺寸大小、重量甚至顏色等等,那么cmp函數寫法就很有意思了

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
這個函數傳的是數組首地址,所以不需要返回值,for循環是需要大括號的。 改了一下: void sort(int array[],int n) { int i,j,k,temp; for(i=0;i<n-1;i++) {k=i; for(j=k+1;j<n;j++) if(array[k]>array[j]) k=j; temp=array[i]; array[i]=array[k]; array[k]=temp; } }
添加回答
舉報
0/150
提交
取消