C语言基础题OJ 数组转置

文章目录

  • 题目描述
    • 输入输出提示
    • 程序运行实例
  • 一、解题思路
  • 二、题解
    • 源代码
  • 写在最后


题目描述

编写程序将如下的一个数组a向右旋转90度,构成新的数组b,并打印出来。
a =
1 2
3 4
5 6
7 8

旋转后

b =
7 5 3 1
8 6 4 2


输入输出提示

**输出提示信息:"Array a:\n"   "Array b:\n"
**输出格式要求:"%4d"

程序运行实例

Array a:
   1   2
   3   4
   5   6
   7   8
Array b:
   7   5   3   1
   8   6   4   2

一、解题思路

水题,与矩阵转置算法十分类似,可以在草纸上列出计算即可发现规律,且矩阵已在程序初始化时已经给出。如果OJ只检测输入输出的话,直接print打出相应的矩阵也未尝不可:)


二、题解

源代码

代码如下:

/*
* Author:	FeverTwice
* Date:		2021-06-02
* Func:		Solution for Competition
*/


#include 
#define M 4
#define N 2
main()
{                  
    int a[M][N] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
    int b[N][M], i, j;
    printf("Array a:\n");
    for (i = 0; i < M; i++)
    {                  
        for (j = 0; j < N; j++)
        {                  
            printf("%4d", a[i][j]);
            b[j][M - 1 - i] = a[i][j];
        }
        printf("\n");
    }
    printf("Array b:\n");
    for (i = 0; i < N; i++)
    {                  
        for (j = 0; j < M; j++)
        {                  
            printf("%4d", b[i][j]);
        }
        printf("\n");
    }
}   


写在最后

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

你可能感兴趣的:(C语言,c语言,算法,数组)