C34-二维数组(二)
2024-12-14 15:05:28
发布于:江苏
17阅读
0回复
0点赞
二维数组的综合练习
实例1:A30729.【二维数组】【入门】二维数组列输出
比如输出第k列,意味着输出的行是变化的,列始终是第k列,不会变化的,即输出的是a[i][k]。
int a[15][15]= {};
int n, m, k;
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<=n; i++)
cout << a[i][k] << endl;
实例2:A30259.【二维数组】二维数组练习一
#include <iostream>
using namespace std;
int main(){
int n, cnt = 1;
cin>>n;
for(int i=1; i<=n; i++){
for (int j=1; j<=n; j++){
cout << cnt++ << " ";
}
cout << endl;
}
return 0;
}
实例3:A30731.【二维数组】【入门】交换行
给定一个5*5的二维数组,将第n行和第m行交换,输出交换后的结果。
int a[15][15] = {}, n, m;
for (int i=1; i<=5; i++)
for (int j=1; j<=5; j++)
cin>>a[i][j];
cin >> n >> m;
for (int i=1; i<=5; i++){
for (int j=1; j<=5; j++){
if (i==n) cout << a[m][j] <<' ';
else if (i==m) cout<< a[n][j]<<' ';
else cout << a[i][j] <<' ';
}
cout << endl;
}
int n, cnt = 1;
cin>>n;
for(int i=1; i<=n; i++){
for (int j=1; j<=n; j++){
cout << cnt++ << " ";
}
cout << endl;
}
实例4:A30730.【二维数组】【入门】01方阵统计
#include <iostream>
using namespace std;
int main(){
int zero = 0, t, n;
cin >> n;
for (int i=1; i<=n*n; i++){
cin >> t;
if (t==0) zero ++;
}
cout << zero;
return 0;
}
实例5:A30912.【二维数组】杨辉三角1
使用二维数组存放数字,找到关键的三步内容,按步骤实现即可。
关键的递推公式(也就是规律)
a[i][j] = a[i-1][j] + a[i-1][j-1]
参考程序:
#include<iostream>
using namespace std;
int main(){
int n;
int a[25][25] = {};
cin >> n;
//1. 将第一列和每一行的最后一个变为 1
for(int i=1; i<=n; i++){
a[i][1] = 1; //第1列
a[i][i] = 1; //每一行的最后一个
}
//2. 从第3行第2列开始计算
for (int i=3; i<=n; i++){
for (int j=2; j<=i; j++){
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
//3. 输出数组
for (int i=1; i<=n; i++){
for (int j=1; j<=i; j++){
cout << a[i][j] <<' ';
}
cout << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个