weixin_46051130
Andreinad
2020-08-28 12:14
采纳率: 100%
浏览 97
已采纳

求帮填空一下这个排序代码!!!感激不尽!!

#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;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳
    你的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;
    }
    }
    }
    

    问题解决的话,请点下采纳。

    点赞 评论

相关推荐