我是編碼領域的新學生。我試圖理解陣列的概念。我寫了一個排序陣列的代碼。我將附上我的代碼。請描述它上面的錯誤是什么。
#include<stdio.h>
void main(){
int a[5]={25,3,4,56,2};
int i,j,temp;
for(i=0;i<5-1;i ){
for(j=1;j<5;j ){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<5;i ){
printf("%d ",a[i]);
}
}
輸出:2,25,56,3,4 按此順序。
uj5u.com熱心網友回復:
問題在于這一行:
for(j=1;j<5;j ){
將其更改為:
for(j=i 1;j<5;j ){
否則它將交換先前排序的元素。固定版本開始查看正在處理的元素之后的第一個元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/477687.html
