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 <stdio.h>
#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,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值