C高级地一次作业 编程题第一题

#include<stdio.h>
#define N 100
int main()
{
int a[N];
int i,j,k,n,m,temp=0;
scanf("%d %d",&n,&m);
i=0;
while(i<n)
{
scanf("%d",&a[i]);
i++;
}
for(j=0;j<m;j++) //移动次数
{
temp=a[n-1]; //保存最后一位数
for(k=n-1;k>=0;k--)
{
a[k]=a[k-1]; //向后移动
if(k==0)
{
a[k]=temp;
}
}
}
for(i=0;i<n;i++)
{

if(i==n-1)
printf("%d",a[i]);
else
printf("%d ",a[i]);
}
return 0;
}

 

自己做不会,在网上找的,看懂了,

先宏定义N为100,输入n,m确定书组长度和移动距离,for循环输入数组元素

再一个for循环控制整体向右平移的次数即m,用<m控制,进入内层循环进行的是用a[k]=a[k-1]将某个元素向右平移一次,将n个元素依次做相同的操作,直到进行到第一位即k=0时,将最后一位的值付给第一个即a[k]=temp;最后依次for循环依次输出元素,完成程序。

posted @ 2018-03-28 20:44  计科17-3郭强  阅读(93)  评论(0编辑  收藏  举报