C語言實現陣列的迴圈右移
#include <stdlib.h>
#define N 100
int main()
{
int i, j, x[N], a, b;
printf("請輸入你想右移的數字個數\n");
scanf("%d",&a);
printf("請輸入你想右移的數字\n");
for(i=0; i<a; i++)
{ scanf("%d",&x[i]);
}
printf("你想右移的位數\n");
scanf("%d",&b);
int temp;
for(i = 0;i < b; i++)
{
temp = x[a-1];
for(j = a-1; j >= 0 ;j--)
{
x[j] = x[j-1];
}
x[0] = temp;
}for(i = 0; i < a; i++)
{ printf("%d\t",x[i]);
}
return 0;
}
相關推薦
C語言實現字串迴圈左移和右移
C語言實現迴圈左移和右移這個沒有什麼好說的,直接上程式碼:#include <stdio.h> //寫一個函式 實現功能:輸入字串,向右迴圈或者逆時針移動N位元組,再輸出這個字串 /* //比如:左移2位元組 //左邊不變,右邊變 p[0
C語言:字串迴圈右移
編寫一個程式,作用是把一個字串從末尾開始迴圈右移n個,如"abcdef",n=3,則輸出'defabc";"12345",n=2,則輸出"45123"; 思路:用迴圈,每次都把最後一個字元元素挪到首元素的位子,其餘元素位子後移一個,共n次。 void main() {
C語言實現陣列的迴圈右移
#include <stdio.h> #include <stdlib.h> #define N 100 int main() { int i, j, x[N], a, b; printf("請輸入你想右移的數字
C語言實現陣列的迴圈左移,右移,翻轉
陣列結合指標可以實現很多有趣的功能,比如下面這個程式:假設陣列為 : 12345如果左移一次即為:23451 ,依次類推如果右移一次即為:51234 ,依次類推翻轉則為:54321我們來實現下這個程式:
實現字串迴圈右移n 位與左移n位(建立陣列)
編寫一個函式,作用是把一個 char 組成的字串迴圈 右移 n 個。 比如原來是“abcdefghi” 如果 n=2,移位後應該是“hiabcdefgh” 左移n個 比如原來是“abcdefghi
c語言實現雙向迴圈連結串列
此次工程還是使用了3個原始檔list.h(標頭檔案原始碼),main.c(實現介面的具體程式碼),list.c(單鏈表邏輯) list.h #pragma once #include<stdio.h> #include<stdlib.h> #include
C語言實現陣列逆置
#include <stdio.h> #include <assert.h> void swap(int *a ,int *b) { int tmp = *a; *a = *b; *b = tmp; } void show(int arr[], int l
【演算法】C語言實現陣列的動態分配
作者:白寧超 2016年10月27日20:13:13 摘要:資料結構和演算法對於程式設計的意義不言而喻,具有指導意義的。無論從事演算法優化方向研究,還是大資料處理,亦或者網站開發APP開發云云。在求職過程中資料結構必然也是筆試的重點,面試的常客。基於此,系統梳理複習下資料結構和演算法相關知識,其實核心
6-1 陣列迴圈右移
本題要求實現一個對陣列進行迴圈右移的簡單函式:一個數組a中存有n(>0)個整數,將每個整數迴圈向右移m(≥0)個位置,即將a中的資料由(a0a1⋯an−1)變換為(an−m⋯an−1a0a1⋯an−m−1)(最後m個數迴圈移至最前面的m個位置)。 函式介面定義: int A
C語言實現隊(迴圈佇列)
之前用連結串列實現隊,這裡用陣列實迴圈佇列,今天又看了一下佇列,發現少了計算佇列長度的函式 佇列的實現程式碼,犧牲一個元素儲存空間 #include<stdbool.h> #define maxsize 10 typedef int datatype; //定
把一個含有N個元素的陣列迴圈右移K位, 要求時間複雜度為O(N)
分析與解法 這個解法其實在《啊哈!演算法》有講到。 假設原陣列序列為abcd1234,要求變換成的陣列序列為1234abcd,即迴圈右移了4位,比較之後,不難看出,其中有兩段的順序是不變的:1234和abcd,可把兩段看成兩個整體。右移K位的過程就是把陣列的兩部分交換一下。
C語言實現的迴圈單鏈表
#include"stdlib.h" typedef struct listnode{ char* data; struct listnode* next; }listnode; listnode* init() { listnode* head = (listnode*)malloc(
day23之陣列迴圈右移k位+去除重複的字元。
將N個字元的陣列,迴圈右移K位。時間複雜度O(N)。 #include<iostream> using namespace std; #include<cassert> #include<string.h> vo
1008 陣列迴圈右移演算法練習(利用陣列逆轉的方法)
一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(A0A1……AN-1)變換為(AN-M …… AN-1 A0 A
c語言實現單向迴圈連結串列
//單迴圈連結串列, 在單鏈表的基礎上, 每建立一個節點,讓其後繼預設指向head //最終保證最後一個節點的後繼指向Head則構成單迴圈連結串列//不帶頭節點判空: head == NULL //帶頭節點判空: head->next == head; 為空 //與
陣列迴圈右移 k 位
例: arr[] = 12345678; k = 2 1.逆序前 6(8-2) 位 -> 65432178 2.逆序後 2 位 -> 65432187 3.全部逆序 -> 7
陣列迴圈右移和約瑟夫環問題
1. 把陣列中的每個數迴圈右移n位,要求時間複雜度O(n),空間複雜度O(1) package cn.lifx.test; public class RightMove { public static void main(String[] args) { int
將陣列迴圈右移k位
將陣列移位就相當於將兩部分序列交換位置,於是將陣列移位轉換為三次反轉操作,如123456右移2位結果為561234,過程:分別將1234和56反轉為4321和65,之後對反轉結果432165做一次反轉結果為561234,java程式碼如下: //將數字
C語言實現陣列長度計算方法
寫C時,經常要用到計算陣列長度,我一般用下面這種方法: #define LEN(x) sizeof(x) / sizeof(x[0]) 即利用庫函式sizeof來計算陣列長度,這種方法,對一維陣列和多維陣列都有效,如以下程式碼示例: #include "stdio.h"
C語言實現陣列所有子集
這段程式碼與之前釋出的01揹包問題密切相關。在使用暴力法解決01揹包問題的時候,最大的問題在於求出一個數組的所有子集,並在這些子集中搜索出最優解。也曾經在網上搜索了大家關於求子集的問題的答案,深受啟發,所以在這裡把程式碼貼出來,以供後來者參考。程式碼沒有經過太多的優化,可能