[問題] 找陣列中多個最小值,並回找最小值位置

看板C_and_CPP (C/C++)作者 (法蘭克福小商人)時間16年前 (2010/03/31 18:27), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/2 (看更多)
遇到的問題: (題意請描述清楚) 我要找before_buttle[15]的最小值(不只一個) 並回找最小值在before_buttle[15]中的位置 存到一個新陣列TempA[15]中 {最小值位置1,最小值位置2,999,999,...} 最小值是4,分別是before_buttle[1]跟[10] 有計算有幾個最小值的count_a 一開始想把TempA長度設成count_a=2,但不會宣告 所以希望最後跑出{1,10,999,999,.....} (一開始把int TempA[15]={999};) 奇怪的是,只會顯示最後一個最小值 TempA[0]=10 (原本應該是1) TempA[1]=10 TempA[2]=0 (原本應該是999) 能請教問題出在哪邊嗎? 很感謝 @@ 有問題的code: (請善用置底文標色功能) int f=999; int count_a; for(x=0;x<=14;x++) \\找出最小值 { if(before_buttle[x]<f) \\int before_buttle[15] { f=before_buttle[x]; } } for(x=0;x<=14;x++) \\找出有幾個最小值 { if(before_buttle[x]==f) { count_a++; } } int TempA[15]={999}; 問題應該是在這邊 for(x=0;x<=14;x++) { if(before_buttle[x]==f) { for(i=0;i<=count_a-1;i++) { TempA[i]=x; } } } printf("%4d\n",TempA[0]); printf("%4d\n",TempA[1]); printf("%4d\n",TempA[2]); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.145.167 ※ 編輯: rothschilds 來自: 61.229.145.167 (03/31 18:51)

03/31 19:07, , 1F
大概看了一下,有兩個問題:
03/31 19:07, 1F

03/31 19:08, , 2F
1. int TempA[15]={999}; <= 只有TempA[0]會是999
03/31 19:08, 2F

03/31 19:10, , 3F
2. TempA下面這個for(第二層),不是會把TempA變成一樣?
03/31 19:10, 3F

03/31 19:46, , 4F
感謝~~我看出問題了~~~
03/31 19:46, 4F

04/01 00:04, , 5F
要用很多次的話...用寫好的吧 http://tinyurl.com/y9t6qam
04/01 00:04, 5F
文章代碼(AID): #1BioE9RL (C_and_CPP)
文章代碼(AID): #1BioE9RL (C_and_CPP)