【题目描述】
输入长度为n的顺序表。第一行为顺序表长度,第二行为顺序表元素。输出表内所有元素并在第二行输出倒数第二个元素。
【输入样例】
5
6 2 7 4 5
【输出样例】
6 2 7 4 5
4
#include<iostream>
using namespace std;
//函数结果状态
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100 //顺序表可能达到的最大值
//Status是函数返回值类型,正确为0,否则为非0值
typedef int Status;
typedef int ElemType;
//顺序表存储结构
typedef struct
{
ElemType* elem; //int类型的指针变量elem,表示顺序表存储空间的地址
int length; //顺序表长度
}SqList; //顺序表名
//顺序表初始化
Status InitList(SqList &L)
{
L.elem = new ElemType[MAXSIZE];//为顺序表分配一个大小为MAXSIZE的数组空间
if(!L.elem) return ERROR; //分配失败退出
L.length = 0;//初始化顺序表长度
return OK;
}
//取值操作
//顺序表 第i位 第i位元素值
Status GetElem(SqList L, int i, ElemType &e)
{
//
if(i < 0 || i > L.length) return ERROR;
e = L.elem[i];//将第i位元素值赋给e
return OK;
}
//输出操作
Status Output(SqList L)
{
for(int i = 0; i < L.length; i ++)
cout << L.elem[i];
cout << endl;
return OK;
}
int main()
{
int n;
cin >> n;
SqList L;//声明顺序表变量L
InitList(L);//调用顺序表初始化函数
//输入
L.length = n;
for(int i = 0; i < L.length; i ++) cin >> L.elem[i];
int x = L.length - 2;//输出倒数第二个元素
ELemType a;//要输出的元素值
GetElem(L, x, a);//调用取值函数
cout << a;//输出所取的值
return 0;
}