程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> acm-一道二維數組的ACM題,剛開始接觸二維數組,求解答

acm-一道二維數組的ACM題,剛開始接觸二維數組,求解答

編輯:編程綜合問答
一道二維數組的ACM題,剛開始接觸二維數組,求解答

這是題目
Description
potato老師雖然很喜歡教書,但是迫於生活壓力,不得不想辦法在業余時間掙點外快以養家糊口。 “做什麼比較掙錢呢?篩沙子沒力氣,看大門又不夠帥...”potato老師很是無奈。 “張藝謀比你還難看,現在多有錢呀,聽說還要導演奧運開幕式呢!你為什麼不去娛樂圈發展呢?”lwg在一旁出主意。 嗯,也是,為了生存,就委屈點到娛樂圈混混吧,馬上就拍一部激光電影《回來我的愛》。 說干就干,馬上海選女主角(和老謀子學的,此舉可以吸引媒體的眼球,呵呵),並且特別規定,演員必須具有ac的基本功,否則直接out! 由於策劃師風之魚(大師級水王)宣傳到位,來應聘的MM很多,當然包括nit的蛋糕妹妹等呼聲很高的美女,就連zsu的jqw都男扮女裝來應聘(還好被安全顧問hdu_Bin-Laden認出,給轟走了),看來娛樂圈比acm還吸引人哪... 面試那天,剛好來了m*n個MM,站成一個m*n的隊列,副導演Fe(OH)2為每個MM打了分數,分數都是32位有符號整數。 一開始我很納悶:分數怎麼還有負的?Fe(OH)2解釋說,根據選拔規則,頭發染成黃色、化妝太濃、穿的太少等等都要扣分數的,扣的多了就可能是負分了,當然,如果發現話語中夾有日語,就直接給-2147483648分了。 分數送上來了,是我做決定的時候了,我的一個選拔原則是,要選一個面試分數絕對值(必須還是32位整數)最大的MM。 特別說明:如果不幸選中一個負分的MM,也沒關系,因為我覺得,如果不能吸引你,那要想法惡心你。

Input
輸入數據有多組,每組的第一行是兩個整數m和n,表示應聘MM的總共的行列數,然後是m行整數,每行有n個,m和n的定義見題目的描述。

Output
對於每組輸入數據,輸出三個整數x,y和s,分別表示選中的MM的行號、列號和分數。 note:行號和列號從1開始,如果有多個MM的分數絕對值一樣,那麼輸出排在最前面的一個(即行號最小的那個,如果行號相同則取列號最小的那個)。

Sample Input
2 3
1 4 -3
-7 3 0
Sample Output
2 1 -7

下面是我的一段代碼
#include
#include
using namespace std;
int main()
{
int n, m, i, j, a[100][100]; double b, c,d ,h=0,l=0;
while (cin >> n >> m)
{
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cin >> a[i][j];
}
//輸入全部分數,並且代給相應數組
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
c = a[i][j]; b = a[0][0];
if (labs(b) < labs(c))
{
h = i+1; l = j+1;//行數h,列數l
a[0][0] = c;//將絕對值最大的數換給數組a【0】【0】

        }
    }
    cout << h << " " << l << " " << a[0][0] << endl;//輸出行數,列數,該值
}
return 0;

}

對照著書本來做的,但是總得不到正確的輸出,不知道哪裡出現了問題,希望能幫我點出還有二維數組需要注意些什麼

最佳回答:


lz的意思是還要我幫你改陷阱咯= =
不做acm好多年了還特地跑去平台交了一遍,ac了
這種問題lz多考慮邊界,坑= =

  #include <iostream>
#include <math.h>
using namespace std;
int main(){
    int n, m, i, j, a[105][105];
    double b, c,d ,h=0,l=0;
    while (cin >> n >> m){
        for (i = 0; i < n; i++){
            for (j = 0; j < m; j++)
            cin >> a[i][j];
        }
        //輸入全部分數,並且代給相應數組
        for (i = 0; i < n; i++){
            for (j = 0; j < m; j++){
                c = a[i][j]; 
                b = a[0][0];
                if (labs(b) < labs(c)){
                    h = i+1;
                    l = j+1;//行數h,列數l
                    a[0][0] = c;//將絕對值最大的數換給數組a[0][0]
                }
            }
        }
        cout << h << " " << l << " " << a[0][0] << endl;//輸出行數,列數,該值
    }
    return 0;
}
u012505618
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved