您的位置:首页 > 其它

XYNUOJ 1181移动数据

2017-08-24 16:59 211 查看

1118: 习题8-4 移动数据

时间限制: 1 Sec  内存限制: 12 MB
提交: 46  解决: 27

[提交][状态][讨论版]

题目描述

输入n个整数(不超过10),使前面各数顺序后移m个位置,最后m个数变成最前面的m个数(m<n),写一个函数实现上述功能。

在main函数中调用该函数,最后分行输出移动后的n个数,每个数占一行。

输入输出都在main函数中进行。

n和m以及n个数都需要从键盘上进行输入。

输入

输入分三行

第一行输入一个数字(假设该数字以n表示,不超过10),表示要输入的数据个数

第二行输入以空格分隔的n个数

第三行输入后移的位置(假设该数字以m表示,m<n)

输出

分行输出移动后的数据,每个数字单独占一行。

样例输入

10
1 2 3 4 5 6 7 8 9 0
3

样例输出

8
9
0
1
2
3
4
5
6
7

提示

C语言第四版教学实验-第八章 指针

调用函数,这都是基础的,就不多解释了

#include<stdio.h>
int main()
{
void move(int[20],int,int);
int a[20],n,m,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}

scanf("%d",&m);
move(a,n,m);
for(i=0;i<n;i++)
printf("%d\n",a[i]);
return 0;
}
void move(int array[20],int n,int m)
{
int *p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0)move(array,n,m);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: