数组开多大的问题

QQ截图20220319102714.png
QQ截图20220319102823.png

  1. // 关键词:逐行逐列
  2. #include <iostream>
  3. using namespace std;
  4. const int N = 110;
  5. int a[N][N];
  6. int n, m; //n行m列
  7. int main()
  8. {
  9. cin >> n >> m;
  10. for (int i = 0; i < n; i++)
  11. for (int j = 0; j < m; j++)
  12. cin >> a[i][j];
  13. //逐行逐列扫描
  14. for (int i = 0; i < n; i++){
  15. for (int j = 0; j < m; j++)
  16. cout << a[i][j] << ' ';
  17. puts("");
  18. }
  19. return 0;
  20. }

例题,矩阵加法

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int a[110][110];
  4. int main()
  5. {
  6. int n, m;
  7. cin >> n >> m;
  8. for (int i = 1; i <= n; i++)
  9. for (int j = 1; j <= m; j++)
  10. cin >> a[i][j];
  11. for (int i = 1; i <= n; i++)
  12. for (int j = 1; j <= m; j++)
  13. {
  14. int x;
  15. cin >> x;
  16. a[i][j] += x;
  17. }
  18. for (int i = 1; i <= n; i++)
  19. {
  20. for (int j = 1; j <= m; j++)
  21. cout << a[i][j] << ' ';
  22. puts(""); // cout << endl;
  23. }
  24. return 0;
  25. }

例题,1127:图像旋转

  1. // 观察,规律
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. const int N = 110;
  5. int a[N][N];
  6. int n, m;
  7. int main()
  8. {
  9. cin >> n >> m;
  10. for (int i = 1; i <= n; i++)
  11. for (int j = 1; j <= m; j++)
  12. cin >> a[i][j];
  13. for (int j = 1; j <= m; j++)
  14. {
  15. for (int i = n; i >= 1; i--)
  16. cout << a[i][j] << ' ';
  17. puts("");
  18. }
  19. return 0;
  20. }

例题,1125:矩阵乘法

  1. #include <iostream>
  2. using namespace std;
  3. const int N = 110;
  4. int a[N][N], b[N][N], c[N][N];
  5. int n, m, k;
  6. int main(){
  7. cin >> n >> m >> k;
  8. for (int i = 1; i <= n; i++)
  9. for (int j = 1; j <= m; j++) cin >> a[i][j];
  10. for (int i = 1; i <= m; i++)
  11. for (int j = 1; j <= k; j++) cin >> b[i][j];
  12. for (int i = 1; i <= n; i++)
  13. for (int j = 1; j <= k; j++){
  14. for (int p = 1; p <= m; p++)
  15. c[i][j] += a[i][p] * b[p][j];
  16. }
  17. for (int i = 1; i <= n; i++){
  18. for (int j = 1; j <= k; j++) cout << c[i][j] << ' ';
  19. puts("");
  20. }
  21. return 0;
  22. }

例题,1122:计算鞍点

  1. #include<iostream>
  2. using namespace std;
  3. int a[10][10];
  4. int maxn[10];
  5. int minn[10];
  6. int main()
  7. {
  8. memset(minn, 0x3f, sizeof minn);
  9. for(int i=1;i<=5;i++)
  10. {
  11. for(int j=1;j<=5;j++)
  12. {
  13. cin>>a[i][j];
  14. }
  15. }
  16. for(int i=1;i<=5;i++)
  17. {
  18. for(int j=1;j<=5;j++)
  19. {
  20. if(a[i][j]>maxn[i])
  21. {
  22. maxn[i]=a[i][j];
  23. }
  24. }
  25. }
  26. for(int i=1;i<=5;i++)
  27. {
  28. for(int j=1;j<=5;j++)
  29. {
  30. if(a[i][j]<minn[j])
  31. minn[j]=a[i][j];
  32. }
  33. }
  34. for(int i=1;i<=5;i++)
  35. for(int j=1;j<=5;j++)
  36. if(a[i][j]==maxn[i] && a[i][j]==minn[j])
  37. {
  38. cout<<i<<' '<<j<<' '<<a[i][j]<<'\n';
  39. return 0;
  40. }
  41. cout<<"not found";
  42. return 0;
  43. }

例题,2050:【例5.20】字串包含

  1. #include<iostream>
  2. using namespace std;
  3. string s1,s2;
  4. int main(){
  5. cin>> s1>> s2;
  6. string s;
  7. s += s1;
  8. s += s1;
  9. if(s.find(s2) != string::npos){
  10. cout<< "true";
  11. return 0;
  12. }
  13. string ss;
  14. ss += s2;
  15. ss += s2;
  16. if(ss.find(s1) != string::npos){
  17. cout<< "true";
  18. return 0;
  19. }
  20. cout<< "false";
  21. return 0;
  22. }

例题,1143:最长最短单词

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. string s;
  4. int maxn = -1, minn = 1e6;
  5. string r1, r2;
  6. int main()
  7. {
  8. getline(cin, s);
  9. for (int i = 0, len = s.size(); i < len; i++){
  10. if (s[i] == ' ' || s[i] == ',') continue;
  11. string now;
  12. int j = i;
  13. while (j < len && s[j] != ' ' && s[j] != ',') now += s[j++];
  14. int t = now.size();
  15. if (t > maxn){
  16. r1 = now;
  17. maxn = t;
  18. }
  19. if (t < minn){
  20. r2 = now;
  21. minn = t;
  22. }
  23. i = j - 1;
  24. }
  25. cout << r1 << '\n' << r2 << '\n';
  26. return 0;
  27. }