PAT C语言入门题目-7-52 数组元素循环右移问题 (20 分)

2023-10-31

7-52 数组元素循环右移问题 (20 分)

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A​0​​A​1​​⋯A​N−1​​)变换为(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A​N−M−1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

输入格式:

每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。

输出格式:

在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:

6 2
1 2 3 4 5 6

输出样例:

5 6 1 2 3 4

思路是 先输出56,再输出1234,直接存入数组,先输出(j+m-1)%n=0的数,也就是应该第一个输出的数,然后依次往后输出到数组末尾,再从数组头开始输出。但有两个测试点未通过,一个是格式错误,一个是 答案错误


#include<stdio.h>

int main()
{   
    int n,m,i,x,j,y,k;
    scanf("%d %d",&n,&m);
    int a[n];
    for(i=0;i<n;i++){ //输入该数组
	  scanf("%d",&a[i]); 
	}
 if(m==1){
		printf("%d ",a[n-1]);
	  for(j=0;j<n-1;j++){
	   printf("%d",a[j]);
	   if(k!=n-2)
	    	 printf(" ");
	  }
	   	
  }else{
    	for(j=0;j<n;j++){//输出
     	    if((j+m-1)%n==0){//从平移后数组下标应为0的数开始输出
     	    	 x=j;
			  printf("%d ",a[j-1]); 
			  for(y=j;y<n;y++){//输出第一个数后续的的数直到数组末尾
			    printf("%d ",a[y]);
			  }
		    }
		    
	    }
	    for(k=1;k<x;k++){//紧接着输出原始下标为0的数
	    	printf("%d",a[k-1]);
	    	if(k!=x-1)
	    	 printf(" ");
	    }
    }
	return 0;
}

转载:思路:整体向右移动m位
作者:—雨辰— 
原文:https://blog.csdn.net/qq_40268826/article/details/83039223 

#include <stdio.h>
 int main () {
    int n,m,i;
    scanf("%d%d",&n,&m);
    int a[n+m];
    for ( i=0; i<n; i++){   //初始化数组
        scanf("%d",&a[i]);
    }
    for ( i=n-1; i>=0; i--){        //整体向右移m位
        a[i+m] = a[i]; 
    }
    while(m--){     //把最后m位移到最前面
        a[m] = a[n+m];
    }
    for ( i=0; i<n; i++){     //遍历输出数组
        printf("%d",a[i]);
        if ( i != n-1)
            printf(" ");
    }
    return 0;
}

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PAT C语言入门题目-7-52 数组元素循环右移问题 (20 分) 的相关文章

随机推荐

  • 实战:windows如何双显示屏独立显示

    现实中 时常看到那些大佬们同时操作多个显示屏 感觉甚是带劲 于是我经过一番摸索 也找到了一条一台电脑两个显示屏独立显示的方法 再此记录一下 希望能帮到有需要的小伙伴 我的操作环境 一台普通笔记本 一个液晶显示屏 前提 你的笔记本或者台式机主
  • python编程:字典的典型应用:二级(多级)菜单,实现户籍省市的多层级选择

    一 编程题目 现实生活中我们经常要用到二级菜单或者多级菜单 下面我们以一个信息系统中关于户籍省市的选择利用字典来实现一个二级菜单 要求以下面的内容来定义二级菜单 广东省 广州市 珠海市 东莞市 惠州市 汕头市 湛江市 河源市 梅州市 湖南省
  • Elasticsearch密码配置(包括集群与单节点)

    ES单节点密码配置 1 修改配置文件 在配置文件中添加如下参数 xpack security enabled true xpack security transport ssl enabled true xpack license self
  • win7新建文本文档快捷键

    由于编者水平有限 文中难免会有错误和疏漏 请各位读者能提出宝贵建议或给予指正 可在博文下评论指出 我会及时改进 在此先感谢各位 本文是自己学习所做笔记 欢迎转载 但请注明出处 http blog csdn NET yijuanxia 环境
  • 快速了解日志概貌,详细解读13种日志模式解析算法

    云智慧 AIOps 社区是由云智慧发起 针对运维业务场景 提供算法 算力 数据集整体的服务体系及智能运维业务场景的解决方案交流社区 该社区致力于传播 AIOps 技术 旨在与各行业客户 用户 研究者和开发者们共同解决智能运维行业技术难题 推
  • 超级入门题:A+B

    这个题没什么好讲的 两个数 一个a 一个b 两数相加不超过int范围 求两数之和 include
  • bilibili老版本_哔哩哔哩5.13.0旧版本下载-bilibili5.13.0旧版本下载v5.13.0旧版本-西西软件下载...

    bilibili5 13 0旧版本是一款bilibili最近推出的up主动态评论的版本的前一款版本 这个版本相比较新版而言减少了up主评论动态显示 对于不少小伙伴来说 bilibili毕竟是一个用来看视频的地方 所以对于文字评论不怎么感冒
  • Java中只有值传递?一篇文章彻底弄懂

    新手上路 记录自己的理解 在C 中 函数传值有两种方式 即值传递和引用传递 而在Java中 只有值传递 即便传递的对象为引用类型 如String 所谓的值传递是指在调用函数时将实参复制一份传递到函数中 这样函数中操作的是实参的副本 不会对实
  • springboot将图片上传至七牛云服务器(超详细)

    我们在公司的业务开发中 经常会接触到图片上传功能 有很多小伙伴都会在这里遇坑 特别是将图片上传至七牛云服务器上 网上的很多讲解也都很不明确 那么今天我们就要来讲一讲如何将本地的图片上传至七牛云服务器上 配合步骤自己做一个小的demo吧 本文
  • VirtualBox 虚拟机里网络很慢的解决方法

    VirtualBox 升级到6 0 4 后发现这个问题 Mac 主机网速很快 但虚拟机 ubuntu 里网络很慢 首先尝试多种不同的网络连接模式 都不能解决 再回头调试 发现域名解析很慢 问题定位在 DNS 问题 ping 一下百度 15秒
  • 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器

    使用Python OpenCV进行简单的场景边界 拍摄转换检测器 1 效果图 2 实现 2 1 步骤 2 2 什么是 场景边界 和 拍摄过渡 2 3 代码目录结构 2 源码 参考 这篇博客起源于朋友分享蝙蝠侠7更新了 而我没有办法去最近的书
  • Learing blockchain in go

    Windows下JetBrains GoLand环境配置记录 根据文末Reference 1 实现的迷你区块链 暂有 block chain pow UTXO 现在实现的bc存在double spending问题 并且创世区块和创世交易的哈
  • C++之合并两个链表

    题目 已有a b两个链表 每个链表中的结点包括学号 成绩 要求把两个链表合并 按学号升序排列 include
  • 程序员不擅长沟通???

    版权声明 原创作品 允许转载 转载时请务必以超链接形式标明文章原始出版 作者信息和本声明 否则将追究法律责任 本文地址 http blog csdn net jobchanceleo archive 2007 01 18 1487073 a
  • c++函数返回引用

    转自 http www cnblogs com floatedclouds archive 2011 10 13 2209917 html 1 什么是引用 引用就是变量的别名 操作一个变量的引用也就相当于操作变量本身 这一点跟指针很类似 但
  • Cursor,程序员的 AI 代码编辑助手

    相信大家都或多或少地听说过 了解过 chatGPT 半个月前发布的 GPT 4 可谓是 AI 赛道上的一个王炸 那么今天咸鱼给大家分享一个开源的 AI 代码编辑器 Cursor 让各位程序员在编程之路上一骑绝尘 介绍 Cursor 是一个人
  • minigui成功移植到ubuntu64位平台

    1 pc系统ubuntu14LTS 64bit 同时在32位ubuntu16 04上经过了测试 官方的所有范例程序都能运行 2 过两天会写份详细的移植教程 现在只是将移植好的文件上传到我的csdn下载 大家可以免费下载 3 做个简单的移植过
  • nginx代理去掉URl前缀

    今天接到一个配置nginx的需求是 需要访问某个域名时 nginx可以去掉前缀去代理访问到后端 正常配置情况下 在nginx配置文件中中设置了 location prod api api 时 浏览器访问 prod api api 反向代理到
  • ModbusPoll和Slave的使用教程

    ModbusPoll和Slave的使用教程 在工业领域 很多地方采用了Modbus协议 简单理解一下Modbus协议 就是把数据存在寄存器地址里面编号 然后通过协议读取 modbus有主机和从机 主机只有一个 从机可以有很多个 玩过Tcp的
  • PAT C语言入门题目-7-52 数组元素循环右移问题 (20 分)

    7 52 数组元素循环右移问题 20 分 一个数组A中存有N gt 0 个整数 在不允许使用另外数组的前提下 将每个整数循环向右移M 0 个位置 即将A中的数据由 A 0 A 1 A N 1 变换为 A N M A N 1 A 0 A 1