数组开多大的问题
// 关键词:逐行逐列
#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;
}