void list_smax(lnode *first)//first为链表的首个节点,该函数的目的是找到链表中成员square值最大的节点
{
lnode *p,*s;
int i;
p=first;
s=first;
while(s!=NULL)
{
if(p->squaresquare)//square为链表节点中float类型的成员
p=s;
s=s->next;
printf("%d\n",i);
i++;
}
printf("面积最大项为:\n");
printf("%-18s%-10s%5.3f%12d\n",p->add,p->name,p->square,p->num);
}
为什么用while循环至链表某尾时程序不再运行?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- threenewbee 2019-02-11 00:53关注
看下链表的初始化
malloc分配之后,有没有默认把next指针设置为NULL
怀疑最后一个以后有野指针,导致while(s!=NULL)没有办法停止。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 flink cdc无法实时同步mysql数据
- ¥100 有人会搭建GPT-J-6B框架吗?有偿
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名