一、整体思路
读入相应的输入数据后,对数组进行右移后输出
二、关键问题
1.如何实现数组的右移
三、关键问题对应的解决方法
1.进行m次以下过程(每次右移1位)
保存数组的末位元素,将数组中第0位到倒数第二位的元素右移一位,再将末位元素的值赋给第0位
四、数据结构
使用一个int变量存储数组每次右移一位前的末位,以将其赋给第一位
代码如下:
#define _CRT_NONSTDC_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void move(int n,int m,int a[100]);
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int i;
int a[100];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
move(n,m,a);
for(i=0;i<n;i++)
{
printf("%d",a[i]);
if(i!=n-1)
printf(" ");
}
return 0;
}
void move(int n,int m,int a[100])
{
int i,j;
int mowei;
for(i=0;i<m;i++)
{
mowei=a[n-1];
for(j=n-2;j>=0;j--)
{
a[j+1]=a[j];
}
a[0]=mowei;
}
}