C语言实验——数组逆序
来源:互联网 发布:淘宝有月销量但没评价 编辑:程序博客网 时间:2024/05/06 09:36
C语言实验——数组逆序
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
5 1 2 3 4 52
示例输出
4 5 1 2 3
#include <stdio.h>
#include <stdlib.h>
#define stackmax 10000
#define stacknum 10000
typedef int ElemType;
typedef struct
{
ElemType *base;
ElemType *top;
int stacksize;
} SqStack;
int InitStack(SqStack &s)
{
s.base = (ElemType*) malloc (stackmax*sizeof(ElemType));
if (! s.base)
exit(0);
s.top = s.base;
s.stacksize = stackmax;
return 0;
}
int Push(SqStack &s , int e)
{
if(s.top-s.base >= s.stacksize)
{
s.base = (ElemType *)realloc(s.base,(s.stacksize+stacknum)*sizeof(ElemType));
if (! s.base ) exit(0);
s.top = s.base + s.stacksize;
s.stacksize += stacknum;
}
*s.top++=e;
}
int Pop(SqStack &s)
{
if(s.top == s.base) return 0;
s.top--;
return 1;
}
int GetTop(SqStack &s)
{
if(s.top == s.base) return 0;
int e=*(s.top-1);
return e;
}
int StackEmpty(SqStack &s)
{
if(s.top == s.base)
return 1;
else
return 0;
}
void putstack(SqStack &s)
{
while(s.top > s.base)
{
printf("%d ", *(s.top-1));
s.top--;
}
}
int Swap(SqStack &s, int a[], int n, int m)
{
int i;
for(i=n-m-1; i>=0; i--)
Push(s, a[i]);
for(i=n-1; i>=n-m; i--)
Push(s, a[i]);
}
int main()
{
SqStack s;
int n, i, a[110], m;
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
scanf("%d", &m);
InitStack(s);
Swap(s, a, n, m);
putstack(s);
return 0;
}
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验——数组逆序
- C语言实验题——数组逆序
- 1186C语言实验——数组逆序
- C语言实验题——数组逆序
- Problem H: C语言实验——数组逆序
- 第十三周 C语言实验——数组逆序
- 第十四周-C语言实验——数组逆序
- C语言实验——数组逆序 (sdut oj)
- nyoj 353 3d dundeon【bfs】
- 欢迎使用CSDN-markdown编辑器
- 活动碎碎念 死亡如风,常伴吾身。
- Recyclerview的使用
- matlab 找矩阵中每行或每列的最大值
- C语言实验——数组逆序
- 『python工作』常用知识
- Android 4.4 电池电量显示相关
- Python的关键字参数(**kw)和无关键字参数(*args)小结
- office2016安装+激活
- JavaScript入门
- Handler机制
- 【Java语言学习】之创建对象的方式种类
- linux环境下运行java中文乱码(docker)