栈实验之数组逆序
2016-08-01 10:14
225 查看
题目描述
有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m < n < 100)个位置。输入
输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。输出
按先后顺序输出n个整数。示例输入
5 1 2 3 4 5 2
示例输出
4 5 1 2 3#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
#define sizenum 100
typedef int element;
typedef struct
{
element *top;
element *base;
int stsize;
}sq;
int intistack(sq*s)
{
s->base=(element*)malloc(maxsize*sizeof(element));
if(!s->base)
return -1;
s->top=s->base;
s->stsize=maxsize;
return 0;
}
int push(sq*s,int k)
{
if(s->top-s->base>s->stsize)
{
s->base=(element*)realloc(s->base,(s->stsize+sizenum)*sizeof(element));
if(!s->base)
return -1;
s->top=s->base+sizenum;
s->stsize+=sizenum;
}
*(++s->top)=k;
return 0;
}
int main()
{
int n,m,i,a[maxsize];
sq s;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
intistack(&s);
for(i=n-m+1;i<=n;i++)
{
push(&s,a[i]);
}
while(s.top>s.base)
{
printf("%d ",*(++s.base));
}
for(i=1;i<=n-m;i++)
printf("%d ",a[i]);
return 0;
}
相关文章推荐
- 山东理工大学ACM平台题答案 1178C语言实验——数组逆序
- C语言实验——数组逆序
- oj第十四周实践C语言实验——数组逆序(2000)
- C语言实验——数组逆序
- 1186 理工大学ACM平台题答案关于C语言 C语言实验——数组逆序
- C语言实验——数组逆序
- 第十三周 C语言实验——数组逆序
- C语言实验题——数组逆序
- C语言实验-数组逆序
- C语言实验——数组逆序
- SDUT-1186 C语言实验——数组逆序
- C语言实验——数组逆序
- 第十四周-C语言实验——数组逆序
- 实验6——2输入n个整数,存入数组a中,分别按正序和逆序输出这些数
- 实验6 数组2(输入n个整数,存入数组a中,分别按正序和逆序输出这些数;)
- 实验6 数组1 输入n个整数,存入数组a中,分别按正序和逆序输出这些数
- C语言实验——数组逆序
- Problem H: C语言实验——数组逆序
- C语言实验——数组逆序 (sdut oj)
- C++语言实验——数组逆序