矩阵问题之//矩阵旋转//一道找规律的题

问题 C: 矩阵旋转
输入一个N*M的矩阵,要求将这个矩阵右转90度后输出。
例如矩阵:A B C 右转90度后变成: D A
D E F E B
F C
输入
第一行包含两个参数n和m,表示矩阵有n行m列,1<=n,m<=10
接下来输入n行数据,每行包含m个元素,每个元素用字母表示
输出
输出右转90度后的矩阵
样例输入
2 3
A B C
D E F
样例输出
D A
E B
F C

hint:关键在于找到对应关系到规律,你可以把原来没旋转前的数组序号当成x,旋转后的数组序号当成y,以此找到规律。

#include<stdio.h>
int main()
{
    int n,m;
    char arr[100][100];
    scanf("%d%d",&n,&m);
    getchar();
    /*考试时一定要注意如果前面输入的数字后面是字符一定要加getchar()*/
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            scanf("%c",&arr[i][j]);
            getchar();
            /*这里要加getchar()是因为上一个字符输入后scanf'遇到空格或回车结束空格和回车不录入上一个字符,但会空格会留在缓存区放到下一个字符,如果是整数输入就没这个问题因为%d根本不识别空格*/
        }
    }

    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            printf("%c",arr[(n-1)-j][i]);
            /*这道题的关键自己总结规律,行列交换*/
            if(j!=(m-1))
            printf(" ");
            /*常用输出格式技巧*/
        }
        printf("\n");
    }
    printf("\n");
    return 0;
}
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值