问题A 零基础学C/C++116——矩阵转置
要点
- 理清楚其中关系,现在要输出的m行n列,且ij为原本的ji
#include
int main()
{
int n,m,a[10][10];
while (~scanf("%d %d",&n,&m)){
for (int i=0;i
问题B 输出矩阵
要点
#include
int main()
{
int n,m,a[10][10];
while (~scanf("%d %d",&n,&m)){
int v = 1;
for (int i=0;i
问题C 零基础学C/C++118——弓型矩阵
要点
#include
int main()
{
int n,m,a[10][10];
while (~scanf("%d %d",&n,&m)){
int v = 1;
for (int i=0;i=0;j--) printf("%2d ",a[i][j]);
printf("\n");
}
}
return 0;
}
问题D 零基础学C/C++119——矩阵整理
要点
- 如何交换矩阵第一行和最后一行?可以把第一行数据读到数组的最后一行。或者都正常读完之后交换两行列数相等的对应值。
#include
int main()
{
int n,m,a[10][10],sum[10];
while (~scanf("%d %d",&m,&n)){
for (int j=0;j
问题E 零基础学C/C++120——矩阵对角线求和
要点
#include
int main()
{
int n,a[10][10],sum[10];
while (~scanf("%d",&n)){
for (int i=0;i
问题F 判断是否上三角矩阵
要点
- 数组最好从1开始吧,然后类似上次的输出菱形题目,找到行数和要检查的东西。
#include
int main()
{
int n,a[10][10],sum[10];
while (~scanf("%d",&n)){
for (int i=0;i
问题G 零基础学C/C++122——杨辉三角
要点
- 找到规律,第一行直接处理好,之后每一行最后一个和第一个都是1,中间的等于上面一行两个的和,也建议数组从1开始算。
- 然后讲一下预处理,处理一次,之后就不用不用算了。
#include
int main()
{
int n,a[31][31]={0};
a[1][1] = a[2][1] = a[2][2] = 1;
for (int i=3;i<=30;i++){
a[i][1] = a[i][i] = 1;
for (int j=2;j<=i-1;j++) a[i][j] = a[i-1][j-1] + a[i-1][j];
}
while (~scanf("%d",&n)){
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
问题H 矩阵按点
要点
- 找到每一行/每一列的最大/最小值,然后我们找这一行最大的数对应的列 对应的最小的数对应的这一行 是不是就是当前这一行。
- 或者直接另开一个二维数组,是最大最小值就+1
#include
int a[10][10];
int main()
{
int n;
while (~scanf("%d",&n)){
for (int i=0;i a[i][hang[i]]) hang[i] = j;
}
}
int lie[10];
for (int j=0;j
#include
int main()
{
int n,a[6][6],mp[6][6];
while (~scanf("%d",&n)){
for (int i=0;ia[i][maxj]) maxj = j;
mp[i][maxj] += 1;
}
for (int j=0;j