A+第五次作业

问题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

你可能感兴趣的:(CJSYZX相关)