数组开多大的问题


// 关键词:逐行逐列#include <iostream>using namespace std;const int N = 110;int a[N][N];int n, m; //n行m列int main(){ cin >> n >> m; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) cin >> a[i][j]; //逐行逐列扫描 for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++) cout << a[i][j] << ' '; puts(""); } return 0;}
#include <bits/stdc++.h>using namespace std;int a[110][110];int main(){ int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { int x; cin >> x; a[i][j] += x; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) cout << a[i][j] << ' '; puts(""); // cout << endl; } return 0;}
例题,1127:图像旋转
// 观察,规律#include <bits/stdc++.h>using namespace std;const int N = 110;int a[N][N];int n, m;int main(){ cin >> n >> m; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int j = 1; j <= m; j++) { for (int i = n; i >= 1; i--) cout << a[i][j] << ' '; puts(""); } return 0;}
例题,1125:矩阵乘法
#include <iostream>using namespace std;const int N = 110;int a[N][N], b[N][N], c[N][N];int n, m, k; int main(){ cin >> n >> m >> k; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int i = 1; i <= m; i++) for (int j = 1; j <= k; j++) cin >> b[i][j]; for (int i = 1; i <= n; i++) for (int j = 1; j <= k; j++){ for (int p = 1; p <= m; p++) c[i][j] += a[i][p] * b[p][j]; } for (int i = 1; i <= n; i++){ for (int j = 1; j <= k; j++) cout << c[i][j] << ' '; puts(""); } return 0;}
例题,1122:计算鞍点
#include<iostream>using namespace std;int a[10][10];int maxn[10]; int minn[10];int main(){ memset(minn, 0x3f, sizeof minn); for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { cin>>a[i][j]; } } for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { if(a[i][j]>maxn[i]) { maxn[i]=a[i][j]; } } } for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { if(a[i][j]<minn[j]) minn[j]=a[i][j]; } } for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) if(a[i][j]==maxn[i] && a[i][j]==minn[j]) { cout<<i<<' '<<j<<' '<<a[i][j]<<'\n'; return 0; } cout<<"not found"; return 0;}
例题,2050:【例5.20】字串包含
#include<iostream>using namespace std;string s1,s2;int main(){ cin>> s1>> s2; string s; s += s1; s += s1; if(s.find(s2) != string::npos){ cout<< "true"; return 0; } string ss; ss += s2; ss += s2; if(ss.find(s1) != string::npos){ cout<< "true"; return 0; } cout<< "false"; return 0;}
例题,1143:最长最短单词
#include <bits/stdc++.h>using namespace std;string s;int maxn = -1, minn = 1e6;string r1, r2;int main(){ getline(cin, s); for (int i = 0, len = s.size(); i < len; i++){ if (s[i] == ' ' || s[i] == ',') continue; string now; int j = i; while (j < len && s[j] != ' ' && s[j] != ',') now += s[j++]; int t = now.size(); if (t > maxn){ r1 = now; maxn = t; } if (t < minn){ r2 = now; minn = t; } i = j - 1; } cout << r1 << '\n' << r2 << '\n'; return 0;}