复兴无基础第十三课 二维数组
2025-09-21 19:16:01
发布于:上海
T1二维数组初始化
#include <iostream>
using namespace std;
int main() {
int a[3][5] = { {1,2,3,4,5},
{6,7,8,9,0},
{16,12,14,11,29} };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T2二维数组的一行
#include <iostream>
using namespace std;
int main() {
int k;
int a[3][5] = { {1,2,3,4,5},
{6,7,8,9,0},
{16,12,14,11,29} };
cin >> k;
for (int j = 0; j < 5; j++) {
cout << a[k - 1][j] << " ";
}
return 0;
}
T3二维数组输入输出
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
int main() {
int n, m;
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] << " ";
}
cout << endl;
}
return 0;
}
T4行逆序输出
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
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 = n; i >= 1; i--) {
for (int j = 1; j <= m; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T5矩阵交换行
#include <iostream>
using namespace std;
const int N = 10;
int a[N][N];
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
cin >> a[i][j];
}
}
int m, n;
cin >> m >> n;
for (int j = 1; j <= 5; j++) {
swap(a[m][j], a[n][j]);
}
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T6矩阵转置
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
int main() {
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T7表格
#include <iostream>
using namespace std;
const int N = 110;
long long a[N][N];
int main() {
int n, m;
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] << " ";
}
cout << endl;
}
return 0;
}
T8元素定位
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
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];
}
}
int x, y;
cin >> x >> y;
cout << a[x][y];
return 0;
}
T9图像旋转
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N]; // 用来存储矩阵(图像)
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 j = 1; j <= m; j++) {
for (int i = n; i >= 1; i--) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T10旋转
#include <iostream>
using namespace std;
const int N = 110;
char s[N][N];
int main(){
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> s[i][j];
}
}
for(int i = n - 1; i >= 0; i--){
for(int j = m - 1; j >= 0; j--){
cout << s[i][j];
}
cout << endl;
}
return 0;
}
T11数0
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
int main() {
int n, m, cnt = 0;
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++) {
if (a[i][j] == 0) {
cnt++;
}
}
}
cout << cnt;
return 0;
}
T12矩阵加法
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N], b[N][N];
int main() {
int n, m;
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++) {
cin >> b[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << a[i][j] + b[i][j] << " ";
}
cout << endl;
}
return 0;
}
T13海上宝藏
#include <iostream>
using namespace std;
//用二维数组存地图
const int N = 110, M = 1e3 + 10;
char mp[N][M];
int main(){
int n, m;
cin >> n >> m;
//输入地图
for(int i = 0; i < n; i++){
cin >> mp[i];
}
//遍历地图,如果是宝藏,输出坐标位置
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(mp[i][j] == 'T'){
cout << '(' << i << ',' << j << ')' <<" ";
}
}
}
cout << endl;
//遍历地图,如果是陷阱,输出坐标位置
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(mp[i][j] == 'S'){
cout << '(' << i << ',' << j << ')' <<" ";
}
}
}
return 0;
}
T14图像相似度
#include <iostream>
using namespace std;
int a[110][110], b[110][110];
int main() {
int m, n;
double s = 0;
cin >> m >> n;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
cin >> a[i][j];
}
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
cin >> b[i][j];
}
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[i][j]) {
s++;
}
}
}
printf("%.2f", s / (n * m) * 100);//图像相似度
return 0;
}
T15同行列对角线的格
#include <iostream>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
for (int i = 1; i <= n; i++) { //同行
cout << "(" << x << "," << i << ")" << " ";
}
cout << endl;
for (int i = 1; i <= n; i++) { //同列
cout << "(" << i << "," << y << ")" << " ";
}
cout << endl;
for (int i = 1; i <= n; i++) { //左上到右下
for (int j = 1; j <= n; j++) {
if (i - j == x - y) {
cout << "(" << i << "," << j << ")" << " ";
}
}
}
cout << endl;
for (int i = n; i >= 1; i--) { //左下到右上
for (int j = 1; j <= n; j++) {
if (i + j == x + y) {
cout << "(" << i << "," << j << ")" << " ";
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个