推 diabloevagto:你不用管rank,直接排序成績就好 06/25 16:37
忘了說明,這個程式只是用來測試排序過後的資料有沒有同步0.0
主要程式裡面有多種成績,所以需要名次來排序,
目前正卡在排序過後的資料不同步。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 16:52)
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 16:52)
→ TsinTa:if( rank[i] = k+1 ) <-這行是? 06/25 17:04
→ karaokstar:樓上抓到bug了, 而且如果改成 if (rank[i] == k+1) 06/25 17:09
→ karaokstar:有可能不會全部印出來 06/25 17:09
→ TsinTa:改成那樣肯定還是錯XD 06/25 17:09
→ TsinTa:if( rank[i] = k+1 ){ 改成for( ;rank[k] != i+1;k++ );{ 06/25 17:20
→ TsinTa:cout成績那行的i改成k 06/25 17:21
→ TsinTa:最後把下一行的k++改成k=0就搞定了 06/25 17:22
→ TsinTa:看得懂嗎@@" 我試過這樣改就ok了..... 06/25 17:24
→ diabloevagto:你就用vector<pair<int,int>>,sort可以自定義條件 06/25 18:49
剛剛弄好了,可以執行,結果也正確,就把它整合到主程式裡,
不過又出現另一個問題QQ,程式可以執行,但跑到switch case那邊,
輸入選擇後,程式就馬上關閉。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 20:36)
主程式碼http://ideone.com/tMS2kV
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 20:39)
→ TsinTa:return main(); <-這是啥@@" 06/25 20:42
→ TsinTa:switch case不是迴圈,不能讓你重新輸入。 06/25 20:46
我也不太清楚..同學教我弄得=_=
switch case我不太會用,不知道能不能直接指定副程式。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 20:52)
→ TsinTa:我猜你的程式當在data[i].Rank,i根本沒給值.... 06/25 20:55
→ TsinTa:看到"同學教我弄得"這句話,感覺有點.......@@" 06/25 20:58
→ TsinTa:程式如果不是你的,那我告訴你錯的地方,有意義嗎XD 06/25 21:00
程式是我自己的,我switch case那邊比較不懂,所以請教同學=_=
data[i].Rank的i值我記得有設1。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 21:13)
→ TsinTa:switch case可以放副程式,不過拿main作遞迴,我第一次看到 06/25 21:14
→ TsinTa:int i, k, j = 0 ; data[i].Rank=Rank(...);<-這沒設吧? 06/25 21:16
→ TsinTa:還有你的Rank函式只傳回一個整數,應該回傳陣列才對吧? 06/25 21:21
我修改了一下,先暫時不用名次去排序QQ,先只用成績排序,
這樣應該就沒有i的值沒設定到,然後我測試了一下,switch case那邊,
好像是不管輸入什麼都會跳到define(不合法輸入值?)然後程式就關閉了。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 21:36)
→ TsinTa:你了解case 1:和case '1':哪裡不一樣嗎? 06/25 22:02
→ TsinTa:還有,用成績排序,i就會設定到?你確定? 06/25 22:02
我把switch case改成if else之後測試,只要選擇要排序的功能就會出錯,
問題好像是k值沒有初始化?請問要怎麼修改才能夠初始化k值。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 22:59)
→ TsinTa:好傻眼的問題,你知道什麼叫做初始化嗎? 06/25 23:05
→ TsinTa:int i,k,j=0;<-j完全沒用到,你初始為0,k有用到卻置之不理 06/25 23:14
http://ideone.com/DgCkEt
我嘗試把k初始為0,但是只要成績資料輸入完,就會出現錯誤。
還有之前一直忘記問for( ;rank[k] != i+1;k++ )第一個分號之前不用放東西嗎0.0?
這句我看不太懂說。
※ 編輯: sofksjmf 來自: 120.113.127.195 (06/25 23:23)
→ drumstick:for(); 後面有分號 是不是empty statement? 06/26 00:11
→ TsinTa:那一個for只是為了要找到正確的k值而已... 06/26 05:09
→ TsinTa:while(rank[k]!=i+1) k++; 如果看不懂就換這個吧@@" 06/26 05:17
→ TsinTa:我試跑過你的程式,輸入資料完沒錯,是錯在排序... 06/26 05:44