/*宏定义*/
#define MAXSIZE 100
#define OK 1
#define OVERFLOW -2
#include <iostream>
using namespace std;
typedef int elemtype;
/*定义顺序表的结构*/
typedef struct
{
elemtype vec[MAXSIZE]; /*顺序表数据成员所占据的存储空间*/
int last; /*顺序表中最后一个元素在数组中的下标(或向量中的位置)从0开始*/
} sequenlist;
/*输出线性表*/
void listprint(sequenlist *L)
{
int i;
for(i=0; i<=(*L).last; i++)
cout<<L->vec[i]<<" ";
cout<<endl;
}
void sort(sequenlist *L) //利用冒泡排序对顺序表排序
{
int temp;
for(int i=0;i<L->last;i++)
{
for(int j=0;j<L->last-i;j++)
{
if(L->vec[j]<=L->vec[j+1])
{
temp = L->vec[j];
L->vec[j] = L->vec[j+1];
L->vec[j+1] = temp;
}
}
}
}
int main()
{
sequenlist sl; //定义一个顺序表
int i;
int k;
cout<<"输入顺序表长度:";
cin>>sl.last;
cout<<"输入顺序表数值:"<<endl;
for(i=0; i<=sl.last; i++)
cin>>sl.vec[i];
cout<<"输入的顺序表为:"<<endl;
listprint(&sl);
cout<<"请输入k的值:"<<endl;
cin>>k;
cout<<"排序后:"<<endl;
sort(&sl); //对输入的数据按从大到小排序
listprint(&sl); //输出排序后的顺序表
cout<<"前"<<k<<"名学生的成绩为:"<<endl;
for(i=0;i<k;i++)
cout<<sl.vec[i]<<" ";
cout<<endl;
return 0;
}
数据结构,顺序表的排序并输出前n个元素
最新推荐文章于 2023-03-11 15:49:54 发布