南极人探险 2021-09-29 22:54 采纳率: 87.5%
浏览 40
已结题

合并两个有序链表后,冒泡逆序排序,不知道为何没逆序


#include<stdio.h>
#include<stdlib.h>
int count=1;
typedef int DataType;

typedef struct Node{
    DataType data;
    struct Node *link;
}LinkList;

LinkList *Create_List(){
    LinkList *head,*p,*q;
    int x,flag=1;
    head=(LinkList*)malloc(sizeof(LinkList));//为头结点分配存储空间 
    head->link=NULL;
    q=head;
    while(flag)
    {
        scanf("%d",&x);
        if(x!=-1)
        {
            p=(LinkList*)malloc(sizeof(LinkList));
            p->data=x;
            q->link=p;
            q=p;
            count++; 
        }
        else {
            flag=0;
            q->link=NULL;
        }
    }
    return head;
}


main(void){
    LinkList *a,*b,*c,*e,*h,*t;
    int i,min,count=1,j;
    a=Create_List();
    h=a;
    c=a;
    a=a->link;
    while(a!=NULL){
        e=a;
        a=a->link;
    }
    printf("\n");
    b=Create_List();
    e->link=b->link;
    c=c->link;
    while(c!=NULL)
    {
        printf("%d\n",c->data);
        c=c->link;
    }
    c=h->link;
    for(i=1;i<count;i++){
        for(j=0;j<count-i;j++){
            t=c->link;
            if((c->data)<(t->data)){
                min=c->data;
                t->data=c->data;
                c->data=min;
            }
            c=c->link;
        }
    }
    h=h->link;
    while(h!=NULL)
    {
        printf("%d",h->data);
        h=h->link;
    }
    printf("\n"); 
}

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-09-30 10:26
    关注

    已经定义了全局变量 count ,在主函数里又定义局部变量 count, 其他问题见注释,按题主的思路修改,供参考:

    #include<stdio.h>
    #include<stdlib.h>
    int count = 0;//修改
    typedef int DataType;
    typedef struct Node {
        DataType data;
        struct Node* link;
    }LinkList;
    LinkList* Create_List() {
        LinkList* head, * p, * q;
        int x, flag = 1;
        head = (LinkList*)malloc(sizeof(LinkList));//为头结点分配存储空间 
        head->link = NULL;
        q = head;
        while (flag)
        {
            scanf("%d", &x);
            if (x != -1)
            {
                p = (LinkList*)malloc(sizeof(LinkList));
                p->data = x;
                q->link = p;
                q = p;
                count++;
            }
            else {
                flag = 0;
                q->link = NULL;
            }
        }
        return head;
    }
    
    int main(void) {
        LinkList* a, * b, * c, * e, * h, * t;
        int i, min,  j;                     //count = 1,修改
        a = Create_List();
        h = a;
        c = a;
        a = a->link;
        while (a != NULL) {
            e = a;
            a = a->link;
        }
        printf("\n");
        b = Create_List();
        e->link = b->link;
        c = c->link;
        while (c != NULL)
        {
            printf("%d\n", c->data);
            c = c->link;
        }
        c = h->link;
        for (i = 0; i < count - 1; i++) {//修改
            t = c->link;//修改
            for (j = 0; j < count - i - 1; j++) {//修改
                if ((c->data) < (t->data)) {
                    min = c->data;
                    c->data = t->data;//t->data = c->data;修改
                    t->data = min;  //c->data = min;修改
                }
                t = t->link;//修改
            }
            c = c->link;//修改
        }
        h = h->link;
        while (h != NULL)
        {
            printf("%d ", h->data);
            h = h->link;
        }
        printf("\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月13日
  • 已采纳回答 10月5日
  • 创建了问题 9月29日

悬赏问题

  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?
  • ¥15 Ubuntu20.04.4.LTS系统如何下载安装VirtualBox虚拟机?
  • ¥15 如何用QDomDocument读取内容为空格的xml数据
  • ¥15 请阅读下面代码,帮我修改下代码
  • ¥15 关于#microsoft#的问题:电脑启动后不显示桌面图标和窗口,除任务栏外无法操作任何东西