#include
#include
#define M 50
typedef struct
{
int elem[M+1]; //设从1下标开始保存元素
int last; //last为最后一个元素的下标
}Seqlist;
void input(Seqlist *L)
{
int i,n;
scanf("%d",&n);
if(n<=M)
L->last=n;
else return;
for(i=1;i<=L->last;i++)
scanf("%d",&L->elem[i]);
}
void output(Seqlist *L)
{
int i;
for(i=1;i<=L->last;i++)
printf("%-4d",L->elem[i]);
printf("\n");
}
void sort(Seqlist *L)//排序方法三选一:直接插入排序、简单选择排序、冒泡排序
{
}
int main()
{
Seqlist A;
input(&A);
printf("Before Sort:");
output(&A);
sort(&A);
printf("After Sort:");
output(&A);
return 0;
}
用冒泡排序写一个
注意你的Seqlist的定义比较奇怪,下标是1~N,而不是0~N-1
代码如下
void sort(Seqlist *L)
{
for (int i = 1; i < L->n; i++)
for (int j = 1; j < L->n - i; j++ )
{
if (L->elem[j] > L->elem[j + 1])
{
int t = L->elem[j];
L->elem[j] = L->elem[j + 1];
L->elem[j + 1] = t;
}
}
}