plz_make_shorter_max
unknown
c_cpp
3 years ago
1.6 kB
5
Indexable
#include<iostream> #include <algorithm> using namespace std; int main(){ int m,n,sum=0; cin>>m>>n; int a[20][20]; bool ans = false; // 初始值設為false for(int k=0;k<20;k++){ for(int q=0;q<20;q++){ a[k][q]=0; } } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ cin>>a[i][j]; } // 我把下面土法煉鋼的程式先註解掉 // sum=sum+std::max({a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8],a[i][9],a[i][10],a[i][11],a[i][12],a[i][13],a[i][14],a[i][15],a[i][16],a[i][17],a[i][18],a[i][19]}); // 既然你都引用algorithm 函式庫,就來示範另一個函數:max_element怎麼用吧! sum = sum + *max_element(a[i], a[i]+20); // 從a的第i列開頭取20個元素,找出最大值,跟sum加總 } cout<<sum<<endl; for(int x=0;x<m;x++){ // 大括弧記得加,才能包住所有所需程式敘述 if(sum % std::max({a[x][0],a[x][1],a[x][2],a[x][3],a[x][4],a[x][5],a[x][6],a[x][7],a[x][8],a[x][9],a[x][10],a[x][11],a[x][12],a[x][13],a[x][14],a[x][15],a[x][16],a[x][17],a[x][18],a[x][19]})==0){ if(ans) cout << " ";// ans初在遇到第一個可整除的最大值才會變成true,再之後前面才需要輸出空格 ans=true; // cout<<std::max({a[x][0],a[x][1],a[x][2],a[x][3],a[x][4],a[x][5],a[x][6],a[x][7],a[x][8],a[x][9],a[x][10],a[x][11],a[x][12],a[x][13],a[x][14],a[x][15],a[x][16],a[x][17],a[x][18],a[x][19]}); cout << *max_element(a[x], a[x]+20);// 從a的第i列開頭取20個元素,找出最大值 } } if(ans==false) { cout<<"-1"; } return 0; }
Editor is loading...