取最大值 |
答題得分者是:daldal
|
jenglin
一般會員 發表:45 回覆:32 積分:15 註冊:2006-10-08 發送簡訊給我 |
各位前輩好:
底下max值只能找出幾個相對較大的值,然後在影像中框出這些值的圖框,也就是max值比0.3大的都會被框起來, 請問如何能找出一個最大的max值呢? [code cpp] double max=0.3; for(int j=0; j<(M-K); j=j 1) { for(int i=0; i<(N-L); i=i 1) { if(C[i][j]>=max) max=C[i][j]; if (C[i][j]==max) { Image1->Canvas->Brush->Style=bsClear; Image1->Canvas->Pen->Color=clRed; Image1->Canvas->Rectangle(i,j,i L,j K); } } } [/code] |
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
以下為找出陣列最大值的i,j位置
(如果最大值有兩個以上相同,標上最後先找到的) [code cpp] int max_i; //儲存陣列最大值的i位置 int max_j; //儲存陣列最大值的j位置 double max=-1; //比較是否為最大值 for(int j=0; j<(M-K); j=j 1) { for(int i=0; i<(N-L); i=i 1) { //if(C[i][j]>max)//下面一行改成這行就只會找第一個最大值 if(C[i][j]>=max) //找最後一個最大值 { max=C[i][j]; max_i=i; max_j=j; } } } //把最大點標成紅色 if(max!=-1) Image1->Canvas->Pixels[max_i][max_j] = clRed; [/code] 因為變數不同, 程式碼請自行測試囉 |
hipig
高階會員 發表:31 回覆:75 積分:111 註冊:2007-01-15 發送簡訊給我 |
敝人簡單觀念(笑)
要當最大,要先作小 要當最小,要先做大 [code cpp] double max = 0.0, min = 99999999999.9; int X, Y; for(int j = 0; j < (M-K); j ) { for(int i = 0; i < (N-L); i= ) { if(C[i][j] > max) { max = C[i][j]; X = i; Y = j; } if (C[i][j] <= min) min = C[i][j]; } } Image1->Canvas->Brush->Style=bsClear; Image1->Canvas->Pen->Color=clRed; Image1->Canvas->Rectangle(i - 5, j - 5, i L, j K); [/code] 自行變通 ===================引 用 jenglin 文 章=================== 各位前輩好: 底下max值只能找出幾個相對較大的值,然後在影像中框出這些值的圖框,也就是max值比0.3大的都會被框起來, 請問如何能找出一個最大的max值呢? [code cpp] double max=0.3; for(int j=0; j<(M-K); j=j 1) { for(int i=0; i<(N-L); i=i 1) { if(C[i][j]>=max) max=C[i][j]; if (C[i][j]==max) { Image1->Canvas->Brush->Style=bsClear; Image1->Canvas->Pen->Color=clRed; Image1->Canvas->Rectangle(i,j,i L,j K); } } } [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |