已经定义了全局变量 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;
}