[問題] 關於數字大小排列的程式碼

看板C_and_CPP (C/C++)作者 (O.D)時間16年前 (2010/06/04 00:10), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/1
遇到的問題:排列大小 不過不會排 希望得到的正確結果:排列大小正確 程式跑出來的錯誤結果: 開發平台: C++6.0 #include<stdio.h> #include <stdlib.h> #include<iostream.h> int c[100],temp,x,n; char name[10]; int main() { printf("輸入檔名\n"); scanf("%s",&name); FILE *fp; fp = fopen(name,"r"); while(fscanf(fp,"%d",&x)!=EOF){ c[n]=x; n++; } for(int i=0;i<n-1;i++){ for(int j=1;j<n;j++){ if(c[i]>c[j]){ temp=c[i]; c[i]=c[j]; c[j]=temp; } } } for(int l=0;l<n;l++){ cout<<c[l]<<" "; } cout<<endl; return 0; } 然後我做了一個123.txt檔作輸入 txt內容好比說... 1 2 5 6 7 9 結果排出來就不是照順序...能幫看一下哪出問題嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.130.202

06/04 00:14, , 1F
txt內容不是主要..我換5 4 3 2 1 也是不行
06/04 00:14, 1F

06/04 00:20, , 2F
for loop 的範圍問題
06/04 00:20, 2F

06/04 00:22, , 3F
剛剛改成用手寫想了一下 好像是我把邏輯搞反了...
06/04 00:22, 3F

06/04 00:23, , 4F
scanf("%s",&name); 這個....
06/04 00:23, 4F

06/04 00:26, , 5F
是c[j]>c[j+1]
06/04 00:26, 5F

06/04 00:40, , 6F
for(int j=1;j<n;j++) => for(int j=i+1;j<n;j++) ?
06/04 00:40, 6F
文章代碼(AID): #1C1zG66v (C_and_CPP)
文章代碼(AID): #1C1zG66v (C_and_CPP)