看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 請由main()函數輸入(a,b,c)三個實數值,寫一個函數uabc()傳入(a,b,c)三個實數, 在uabc()將(a,b,c)排序為數(a>b>c),由main()呼叫執行完後,然後在main()印出 (a,b,c)之值.函數的原型宣告為:void uabc(float,float,float); 希望得到的正確結果: 聽說正確答案應該是原始輸入值 程式跑出來的錯誤結果: 排序好的結果 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++2008 有問題的code: (請善用置底文標色功能) 應該在函數部分 補充說明: 底下為程式碼 #include <iostream> using namespace std; void uabc(float ,float ,float ); void uabc(float a,float b,float c) { float temp,temp1,temp2,temp3,temp4,temp5,temp6; float h[3]; h[0]=a; h[1]=b; h[2]=c; if(b>a){ //swap(h[0],h[1]); temp=h[1]; h[1]=h[0]; h[0]=temp; if(c>a&&c<b){ //swap(h[1],h[2]); temp1=h[2]; h[2]=h[1]; h[1]=temp1;} if(c>b){ temp3=h[2]; temp4=h[0]; h[2]=h[1]; h[0]=temp3; h[1]=temp4;} } if(b<a){ if(c>a){ temp5=h[2]; temp6=h[0]; h[2]=h[1]; h[0]=temp5; h[1]=temp6;} if(c>b&&c<a){ //swap(h[1],h[2]); temp2=h[2]; h[2]=h[1]; h[1]=temp2;} } cout<<h[0]<<" "<<h[1]<<" "<<h[2]<<endl; } int main() { float a,b,c; cout<<"Enter 3 numbers\n"; cin>>a>>b>>c; uabc(a,b,c); cout<<a<<" "<<b<<" "<<c<<endl; return 0; } -- ◢███◣ ◢██◣ 洨派氣功!! ▄▆▄ ▄▆ ◥◥◥◥◥◥ / ◥ ▅◥ //// ˊ ˋ □︵□ ◣◢◣ ◢◣ ◢◣ ~───~ /// 啊~ ◥◣ ◥◣ ψqazsugf ⊙ ⊙ / ◥◣ ◥◣ ▃▁ . . ▂▂ ◤ ◥◤ ◥◤▅▃ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.245.27
stupid0319:看起來像作業的東西XD 10/06 02:05
stupid0319:void uabc(float *a,float *b,float *c); 這樣算提示吧 10/06 02:07
purpose:作業狂潮 10/06 02:08
james732:都用VC++了 學一下debugger吧 10/06 02:11
stupid0319:老師應該在教指標的部分,才會出這個作業吧 10/06 02:11
obelisk0114:之前的東西,當時我直接用if排,現在想改成正規的寫法 10/06 02:13
james732:函數的原型宣告為:void uabc(float,float,float); 10/06 02:16
james732:光是這個前提就有很大很大的問題了 XD 10/06 02:17
loveme00835:如果參數再加一個, 你會哭哭喔~ 10/06 02:17
loveme00835:說不定是存結果到全域陣列理 10/06 02:18
james732:我討厭全域變數 XDDD 10/06 02:18
obelisk0114:參數太多應該就用bubble sort,之前在寫一種排序法一直 10/06 02:22
obelisk0114:掛掉,等到有個基本雛形在放上來好了 10/06 02:23
james732:http://nopaste.csie.org/cd88a 10/06 02:29
james732:↑如果你知道這個程式的問題 你就會修改你的程式了 10/06 02:29
loveme00835:真是簡單明瞭XD 10/06 02:34
loveme00835:有兩種方法, 傳址給函式, 或是傳參考給函式, 如果你會 10/06 03:09
loveme00835:泡泡排序了, 可以試試先把最大的移到最前面, 接著剩下 10/06 03:10
loveme00835:兩者比大小視情況交換, 標準庫的 swap就可以直接拿來 10/06 03:10
loveme00835:用了 10/06 03:10
loveme00835:補充, 傳指標有 iter_swap 可以用 10/06 03:23
james732:樓上早點休息吧 XD 原po顯然已經去睡了 10/06 03:29