当前位置: 首页 > article >正文

C语言-方阵循环右移

本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。

输入格式:

输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。

输出格式:

按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。

输入样例:

2 3
1 2 3
4 5 6
7 8 9

输出样例:

2 3 1 
5 6 4 
8 9 7 
#include "stdio.h"
//矩阵右移函数
void MatrixShiftRight(int arr[][6],int pow){
    //总行后一位值寄存器1
    int temp1;
    for (int i = 0; i < pow; ++i) {
        //换行刷新
        temp1 = 0;
        for (int j = 0; j < pow; ++j) {
            //如果当前为该行最后一位
            if (j+1 == pow){
                arr[i][0] = temp1;
            //如果当前为该行第一位
            } else if(j == 0){
                temp1 = arr[i][j+1];
                arr[i][j+1] = arr[i][j];
            //如果当前为非首尾位
            } else{
                //后一位值寄存器2
                int temp2 = arr[i][j+1];
                arr[i][j+1] = temp1;
                temp1 = temp2;
            }
        }
    }
}
int main(){
    int times,pow;
    scanf("%d %d",&times,&pow);
    int arr[6][6];
    for (int i = 0; i < pow; ++i) {
        for (int j = 0; j < pow; ++j) {
            scanf("%d",&arr[i][j]);
        }
    }
    //方阵循环右移
    while (times--){
        //调用矩阵右移函数
        MatrixShiftRight(arr,pow);
    }
    for (int i = 0; i < pow; ++i) {
        for (int j = 0; j < pow; ++j) {
            printf("%d ",arr[i][j]);
            if(j+1 == pow)
                printf("\n");
        }
    }
    return 0;
}

 以上代码全为本人亲自手敲,可能有一些错误和不足之处,如有更好的方法和建议,欢迎您在评论区友善讨论。


http://www.kler.cn/a/146822.html

相关文章:

  • 【c++丨STL】list模拟实现(附源码)
  • gvim添加至右键、永久修改配置、放大缩小快捷键、ctrl + c ctrl +v 直接复制粘贴、右键和还原以前版本(V)冲突
  • SpringBoot中Maven的定义及国内源配置教程,实现自动获取Jar包
  • 【计算机网络】水平触发与边缘触发有什么优缺点呢?
  • 鸿蒙网络编程系列48-仓颉版UDP回声服务器示例
  • 安全、便捷、效率高,明达边缘计算网关助力制药装备企业远程调机
  • pytorch实现遥感建筑物提取
  • 互联网上门洗鞋店小程序
  • Chatbot开发三剑客:LLAMA、LangChain和Python
  • 前端OFD文件预览(vue案例cafe-ofd)
  • beanFactory和Factorybean有啥区别
  • Nginx反向代理实现负载均衡+Keepalive实现高可用
  • go的HTTP网络编程
  • STM32入门--看门狗
  • python网络通信之基础知识填坑
  • 【算法萌新闯力扣】:回文链表
  • 前端实现埋点
  • 前端铜九铁十面试必备八股文——性能优化
  • C#,《小白学程序》第九课:堆栈(Stack),先进后出的数据型式
  • Git设置多个仓库同时推送
  • 【实时渲染】图形渲染管线
  • codeformer,是如何对数据进行降级处理的?是如何模糊人脸图像的?
  • quickapp_快应用_全局数据
  • Open Feign 源码解析(四) --- 请求对象构造(上)
  • 【Qt】判断QList链表内是否有重复数据
  • 微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制