一条咸鱼八百里 2019-12-17 09:14 采纳率: 0%
浏览 255

c语言,链表,指针。求大佬指点!谢谢大家了!

题目要求:
1.已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。
2.第一行,a、b两个链表元素的数量N、M,用空格隔开。
接下来N行是a的数据
然后M行是b的数据
每行数据由学号和成绩两部分组成
3.按照学号升序排列的数据

我的代码:#include
#include
struct x
{
int xue;
int fen;
struct x *next;
};
int n,m,i,k=100000;

int main()
{
scanf("%d%d",&n,&m);

struct x a[n],b[m],c,*head,*p,*h;
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i].xue,&a[i].fen);

}

for(i=0;i<m;i++)
{
scanf("%d%d",&b[i].xue,&b[i].fen);

}

for(i=0;i<n-1;i++)
{
a[i].next=&a[i+1];
}
a[n-1].next=&b[0];
for(i=0;i<m-1;i++)
{
b[i].next=&b[i+1];
}
b[m-1].next=NULL;

for(p=a;(*p).xue!=0;p++)
{
 k=p->xue;
 for(h=p+1;h->xue!=0;h++)
 {
  if(k>(*h).xue)c=*h,*h=*p,*p=c;
 }
}
for(p=a;p->xue!=0;p++)
printf("%d %d\n",p->xue,p->fen);
return 0;

}

错误情况:输出的一部分是乱码
如下(有时候又是第二、三行数据输出正常,第一、四、五行输出乱码):
2 3
2 34
3 45
5 67
4 56
7 89//这一部分是我的输入
2 34
3 45
236528581 4199040
4210712 4210708
1955488802 4199236
请按任意键继续. . .

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-12-18 00:29
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题