[三次反轉法]循環移動數組元素

循環移動

題目描述

給定一組整數,要求利用數組把這組數保存起來,然后實現對數組的循環移動。假定供有n個整數,則要使前面各數順序向后移m個位置,并使最后m個數變為最前面的m個數(m<n)。
注意,不要用先輸出后m個數,再輸出前n-m個數的方法實現,也不要用兩個數組的方式實現。
要求只用一個數組的方式實現,一定要保證在輸出結果時,輸出的順序和數組中數的順序是一致的。

關于輸入

輸入有兩行:第一行包含一個正整數n(n<=100)和一個正整數m,第二行包含n個正整數。每兩個正整數中間用一個空格分開。

關于輸出

輸出有一行:經過循環移動后數組中整數的順序依次輸出,每兩個整數之間用空格分隔。

例子輸入
11 4
15 3 76 67 84 87 13 67 45 34 45
例子輸出
67 45 34 45 15 3 76 67 84 87 13
提示信息

解題分析

首先通過scanf()函數獲取輸入,之后將獲取的整數保存到一個數組中。然后,我們將這個數組整體反轉,接著將前m個元素再次反轉,最后將后n-m個元素反轉。反轉三次后,就得到了我們想要的結果。我們再通過printf()函數將反轉后的數組輸出。

代碼實現
#include <stdio.h>void reverse(int* nums, int start, int end) {while (start < end) {int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start++;end--;}
}int main(void) {int n, m;scanf("%d %d", &n, &m);int nums[100];for (int i = 0; i < n; i++) {scanf("%d", &nums[i]);}// 將nums的各元素反轉三次: 整個反轉、前m個反轉、后n-m個反轉reverse(nums, 0, n - 1);reverse(nums, 0, m - 1);reverse(nums, m, n - 1);// 輸出結果for (int i = 0; i < n; i++) {if (i != 0)printf(" ");printf("%d", nums[i]);}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213769.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213769.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213769.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

口袋參謀:如何對訂單實現一鍵批量插旗?

?在淘寶店鋪運營中&#xff0c;對寶貝訂單標注插旗&#xff0c;也算是常態了&#xff0c;至少90%的商家都不陌生&#xff0c;剩下的10%是剛入行的新手&#xff0c;正如我剛入行一樣。 01 首先我們要了解什么是插旗&#xff1f; 其實就是淘寶店鋪利用各種顏色的旗子來代表訂單…

A-23 P離子交換樹脂:高效去除無機有機污染物的新選擇

在當今水處理行業中&#xff0c;高效、環保的離子交換樹脂備受關注。本文將為您介紹一款具有卓越性能的堿性季胺基陰離子交換樹脂——Tulsion A-23 P。通過分析其特性和應用&#xff0c;展示其在水處理領域的優勢。 一、Tulsion A-23 P離子交換樹脂的特性 物理化學穩定性&#…

Vue生命周期函數執行順序(使用注意事項)

文章目錄 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed Vue.js 是一個基于 MVVM 模式的前端框架&#xff0c;它的核心是一個響應式的數據綁定系統。在 Vue.js 中&#xff0c;組件是一個可復用的 Vue 實例&#xff0c;它擁有自己的生命周期…

input聚焦,失去焦點的那些事

需求&#xff1a; 1&#xff1a;搜索輸入時顯示清空按鈕和搜索按鈕&#xff1b; 2&#xff1a;點擊搜索按鈕失去焦點&#xff0c;并查詢&#xff1b; 3&#xff1a;點擊清空按鈕后重新聚焦&#xff1b; 需要解決的問題&#xff1a; 1&#xff1a;失去焦點需要別的處理的話要加…

Linux命令——nc

Linux命令——nc 文章目錄 Linux命令——nc例子客戶端/服務端模型數據傳輸與服務端交互端口掃描使用代理發送文件聊天工具一次性 Web Server文件夾傳輸遠程克隆磁盤shell反向 shell 參考 netcat&#xff0c;簡寫為 nc&#xff0c;是 unix 系統下一個強大的命令行網絡通信工具&a…

JS手寫Promise.all方法

測試例子 var f11 Promise.resolve("111");var f22 Promise.resolve("222");var f33 Promise.resolve("333");// var f33 Promise.reject("333");1、用原生 Promise 實現 邏輯說明&#xff1a;接收一個由多個promise方法組成的數組…

uniapp開發小程序-pc端小程序下載后端接口的二進制流文件

fileName包含文件名后綴名&#xff0c;比如test.png這種格式 api.DownloadTmtFile后端接口返回的是文件的二進制流 值得注意的是&#xff0c;微信開發者工具中是測試不了wx.saveFileToDisk的&#xff0c;需要真機或者體驗版測試 handleDownload(fileName) {if (!fileName) retu…

mysql表的字段建議加上NOT NULL約束

mysql的列加上NOT NULL約束&#xff0c;這是一個好的實踐&#xff08;但不是一個強制要求&#xff09;&#xff0c;因為它能帶來一些好處&#xff0c;例如&#xff1a; 設置為NOT NULL&#xff0c;可以確保該列沒有NULL值&#xff0c;對該列的數據的規范性進行約束。加上NOT N…

大文件傳輸軟件和傳統軟件的優缺點

在當前信息時代&#xff0c;文件和數據的傳輸已成為我們工作和生活中不可或缺的一環。無論是向同事發送報告還是與朋友分享電影&#xff0c;我們都需要依賴軟件完成這些操作。然而&#xff0c;隨著文件和數據容量的增大&#xff0c;傳統的文件傳輸軟件如FTP、HTTP、SMB、NFS等已…

pycharm中py文件設置參數

在py文件中右鍵 直接對應復制進去即可

sql35(Leetcode1204最后一個能進入巴士的人)

代碼&#xff1a; from t1,t2 自連接 兩兩組合 group by having 求和 選出<1000的項 # Write your MySQL query statement below select a.person_name from Queue a, Queue b where a.turn>b.turn group by a.person_id having sum(b.weight)<1000 order by a.t…

Android:The emulator process for AVD Pixel_2_API_29 was killed

The emulator process for AVD Pixel_2_API_29 was killed 報錯描述&#xff1a; 第一次安裝Android studio好不容易解決gradle啟動模擬器又出現了以下錯誤 The emulator process for AVD Pixel_2_API_29 was killed原因一&#xff1a; 需要安裝Intel x86 Emulator Acceleer…

開啟AI時代產品管理新篇章——寫給產品經理的一本跨界書

在數字化時代&#xff0c;產品經理的角色和能力要求不斷演變。徐修建所著的《搜廣推策略產品經理——互聯網大廠搜索廣告推薦案例》恰逢其時&#xff0c;為新時代的產品經理提供了寶貴的指南。 首先&#xff0c;它通過通俗易懂的語言和生動案例&#xff0c;成功揭示了互聯網大廠…

Linux-----find命令

一、find命令 find介紹&#xff1a; ???find是可以通過文件名稱、類型、大小、權限屬性、時間戳等條件在指定目錄下查找對應文件或者目錄的工具&#xff1b;還可以配合相關命令對匹配到的文件作出后續處理。 二、工作原理及特點 find在查找文件時會遍歷指定的目錄&#xff…

基于conda環境使用mamba/conda安裝配置QIIME 2 2023.9 Amplicon擴增子分析環境,q2cli主要功能模塊介紹及使用

QIIME 2 2023.9 Amplicon Distribution介紹&#xff1a; 概述 qiime團隊專門針對高通量擴增子序列分析退出的conda集成環境&#xff0c;包括了主要和常見的擴增子分析模塊&#xff0c;用戶可以單獨使用各個模塊&#xff0c;也可以使用各模塊組成不同的分析流程。從2023.09版本…

外匯天眼:掌握這個技巧,你也能成為交易高手

在金融市場這個大潮中&#xff0c;外匯交易因其高杠桿、24小時交易等特點吸引著無數交易者。然而成功的交易并非易事&#xff0c;對于投資者來說&#xff0c;外匯交易市場是一個復雜且多變的市場&#xff0c;要在外匯市場中獲得成功就需要扎實的外匯金融基礎知識和獨特的策略&a…

RocketMQ - Spring Cloud Alibaba RocketMQ

Spring Cloud Stream是Spring Cloud體系內的一個框架&#xff0c;用于構建與共享消息傳遞系統連接的高度可伸縮的事件驅動微服務&#xff0c;其目的是簡化消息業務在Spring Cloud應用中的開發。 Spring Cloud Stream的架構圖如下所示&#xff0c;應用程序通過Spring Cloud Str…

論文閱讀《Domain Generalized Stereo Matching via Hierarchical Visual Transformation》

論文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/html/Chang_Domain_Generalized_Stereo_Matching_via_Hierarchical_Visual_Transformation_CVPR_2023_paper.html 概述 立體匹配模型是近年來的研究熱點。但是&#xff0c;現有的方法過分依賴特定數據集上…

五年制專轉本備考沖刺階段,老師給你六點建議助你上岸

1、熱衷的不是學習&#xff0c;而是思考 人與人之間最大的差別在于思維的差別&#xff0c;也可以說是思考的差別。專轉本也是如此&#xff0c;有人思考得簡單&#xff0c;有人思考得復雜&#xff1b;有人想得全面&#xff0c;有人想得膚淺。 只有善于思考&#xff0c;才會對問…

100:ReconFusion: 3D Reconstruction with Diffusion Priors

簡介 官網 少樣本重建必然導致nerf失敗&#xff0c;論文提出使用diffusion模型來解決這一問題。從上圖不難看出&#xff0c;論文一步步提升視角數量&#xff0c;逐步與Zip-NeRF對比。 實現流程 Diffusion Model for Novel View Synthesis 給定一組輸入圖像 x o b s { x i…