一个卡了我三个小时的bug

Anolis OS 23实战:5分钟搞定AI环境配置(含NVIDIA驱动一键安装) 本文详细介绍了如何在Anolis OS 23上快速配置AI开发环境,包括NVIDIA驱动的一键安装和TensorFlow、PyTorch等AI框架的部署。通过智能硬件适配引擎和优化后的二进制包,用户可在5分钟内完成传统需要数小时的配置工作,显著提升AI项目开发效率。 阅读详情

这是一道pat竞赛网站上的题目,题目如下:

1004 成绩排名 (20 分)

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:

每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
  ... ... ...
第 n+1 行:第 n 个学生的姓名 学号 成绩

其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

这道题目很简单,只要保存最大值和最小值数据即可。在完成这道题目后,尝试着用刚学过的链表存储全部数据,并按成绩从高到低的顺序输出。

定义结点类型,初始化,头指针,按N循环输入,条件判断循环遍历寻找插入点...一顿操作猛如虎,一会儿便写好了如下的代码。

#include<stdio.h>
#include<stdlib.h>
typedef struct student{									//定义结点类型 
    char name[11];
    char num[11];
    int ach;
    struct student* next;
}stu;

void print(stu* m){                               		//打印结点数据 
    printf("%s %s %d\n",m->name,m->num,m->ach);
}

stu* build(int N){										//存储数据 
    stu *head,*temp=NULL,*rear;
    head=(stu*)malloc(sizeof(stu));
    head->ach=100;
    head->next=NULL;
    rear=head;  			//初始化链表       
    stu* sea=head;        	//用来寻找结点位置的指针													
    int i=0;
    for(i=0;i<N;i++){
        temp=(stu*)malloc(sizeof(stu));
        scanf("%s %s %d",temp->name,temp->num,&temp->ach);  //录入数据 
    	sea=head;                                                                   
        while((sea->next->ach>temp->ach)&&(sea->next!=NULL))          
        sea=sea->next;                                    //比较成绩,寻找数据插入位置 
		if(sea->next!=NULL){         
        temp->next=sea->next;
        sea->next=temp;
        }
        else{                     
        sea->next=temp;
        rear=temp;
        rear->next=NULL;
		}
    }
    rear->next=NULL; 
    return head;
}
int main(){
    int N=0;
    scanf("%d",&N);
    stu* head=build(N);
	stu*arro=head;
	int i=0;
	while(arro->next!=NULL){
		print(arro->next);
		arro=arro->next;
	}
	printf("%d",i);
	}

在输入一条数据后,抛出异常,又是万恶的return3221225477

 野指针,野指针,我和野指针的区别不过是有个对象......

然而找了很久,把初始化指针都赋成了NULL,也没找到哪里有问题,但还是跑不通。最后用输出sea结点的方法将错误锁定在了while循环里。

​​while((sea->next->ach>temp->ach)&&(sea->next!=NULL))          
        sea=sea->next;                                    

将&&前后的条件对换位置,成功地跑通了。

 while((sea->next!=NULL)&&(sea->next->ach>temp->ach))

在执行先判断循环时,按照从左到右的顺序计算逻辑运算表达式,即进入的循环条件表达式的值。当访问sea->next时,如果next为空,再访问sea->next->ach时就会出现异常。而在输入第一项数据时,头指针,尾指针,sea指针指向同一个结点也就是头结点,指针域的next指针恰好为空(或野指针),因而输入第一项数据时就会发生异常。

调换顺序后,计算sea->next!=NULL时就会跳出循环,执行后续命令,就不会产生这种错误了。

15、基于最优传输的协作多视图聚类框架 本文提出了一种基于最优传输理论的协作多视图聚类框架,通过引入协作学习机制在不同视图间建立先验交互,以提升共识聚类的质量。框架包含两种新方法:协作共识投影方法(CoCP)和基于新表示的协作共识方法(CoCNR)。CoCP在全局空间中整合多视图信息并进行共识投影,而CoCNR则通过协作编码生成新的数据表示以实现更优聚类。方法利用熵正则化的Wasserstein距离与Wasserstein重心,有效捕捉数据分布间的几何结构,并通过聚合步骤获得统一模型。实验结果表明,所提方法在多个数据集上均优于现有方法,具有良好的 阅读详情

相关推荐

从手机到单片机:聊聊ARM Cortex家族那些事,A、R、M系列到底有啥不同?

本文深入解析ARM Cortex家族的A、R、M三大系列处理器,揭示它们在性能、实时响应和能效方面的核心差异。从智能手机到汽车电子和物联网设备,Cortex-A、R、M各司其职,分别应对复杂运算、实时控制和超低功耗场景。通过技术指标对比和典型应用案例,帮助开发者理解如何根据DMIPS/MHz等关键参数选择适合的处理器架构。

weixin_31574149的博客 350

你卡过最厉害的bug是什么?

只可惜,亲戚家太远了,那时候交通不方便。我们大学不断电,但是超额要交电费,不知道为什么我们宿舍一直不用交,没断过电,寻思着整天开空调热水器饮水机,偶尔还拿出小电锅吃个火锅,那几十度电早就该用完了,到毕业才知道我们宿舍原来住的是几个老师,教职工宿舍建好之后搬走了我们住进去了,系统里还两万多块的电费。记得有一段时间游戏机币,以前一元钱可以买5个币,10元钱可以买60个币,然后有段时间铜涨价了,有小伙伴卡BUG,花钱批发这个铜币然后卖给废品站,后来老板就全换成那种不锈钢币了(游戏机内有防作弊的磁铁会吸住铁币)

这个时代,作为程序员可能要学习小程序 584

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

iOS|一个与 NSDateFormatter 有关的小 Bug

我们的 iOS APP 有一个小 Bug,场景简化后是这样:接口返回一个时间字符串,APP 里比较它与当前时间,如果当前时间晚于它,就显示一个按钮,否则不显示。本来是一个很简单的逻辑,但是,有一部分用户反馈,按钮该显示的时候却没有显示。分析结合用户反馈的信息,经过多次尝试后,才发现这个行为竟然与用户手机的时间制式有关——如果用户手机设置里的24小时制开关没有打开,那么这个 Bug 就会出现。相...

靠谱-ing 1296

IBM V3700更换控制器2(503错误)

正常的node1 ,机器代码版本:7.5.0.3, 机器代码构建:115.51.1509171734000。耐心等待后,刷新,看到node2,状态变成 节点状态:服务,错误:656,版本和node1一样了。新换的node2 ,机器代码版本:7.2.0.5, 机器代码构建:87.8.1404221000。耐心等待,刷新,node2,状态看到了,节点状态:活动,错误 724 1 1 0。拔出故障的控制,把内存和HBA卡,电池换到新的控制器。新的控制还是报错无法使用,节点状态:服务 错误:503。

klyshao的博客 4446

RK3588与银河麒麟V10 SP1 2403深度适配:国产化硬件与操作系统的完美融合

本文深入探讨了RK3588处理器与银河麒麟V10 SP1 2403操作系统的深度适配,展示了国产化硬件与操作系统的完美融合。通过性能验证和实际应用测试,证明了这套组合在多媒体处理、AI推理和日常办公中的卓越表现,实现了完全自主可控的计算平台。

weixin_29194255的博客 248

解决bug_赛博朋克2077BUG卡关怎么办?卡关BUG解决办法

《赛博朋克2077》解锁以来存在着不少的BUG,很多玩家表示到了等电话环节迟迟没有电话打过来,可能是卡了BUG,为了帮助大家解决这个问题,请看熊猫加速器下面分享的《赛博朋克2077》卡关BUG解决办法,希望能够帮助大家。可能有些朋友遇到了卡关的Bug,大部分是在等电话的环节,比如《危险游戏》《虎口拔牙》,经过反复尝试得出了以下经验:1.脱离战斗,不在任何对话环节的情况下。追踪当前卡关的任务。游戏内...

weixin_36331429的博客 992

CS1237卡尔曼滤波实战:如何用24位ADC实现电子秤级精度?

本文详细介绍了如何利用CS1237 24位ADC芯片结合卡尔曼滤波算法实现电子秤级精度测量。通过解析CS1237硬件特性、卡尔曼滤波原理及STM32驱动优化,提供了一套完整的解决方案,包括多通道支持、驱动代码实现和性能调优技巧,适用于工业测量和嵌入式开发领域。

linux的博客 1087

【BUG】12小时制和24小时制获取当天零点问题

【BUG】12小时制和24小时制获取当天零点问题   最近在写定时服务的时候,要获取当天的零点这个时间,但是是这样获取的 DateTime dt = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")+" 00:00:00"); Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm...

weixin_30869099的博客 279

Qt C++ bridge模式(桥)

Bridge模式使得抽象和实现能够相对独立。 bridge.h #pragma once #include class CImplementor { public: virtual void operateImp() = 0; }; class CRectImplementor : public CImplementor { public: CR

thinkme2010的专栏 1893

ESP32设备驱动-AS5600磁性旋转位置传感器

AS5600 是一款可编程的 12 位高分辨率非接触式磁性旋转位置传感器。 AS5600可以作为磁性电位器或磁性编码器使用,具有出色的可靠性和耐用性。 与传统电位器/编码器相比,AS5600具有显着优势:高精度、非接触式、旋转角度无限制。 所有这些优点使其适用于非接触式角度测量应用,例如机器人手臂、云台、电机闭环控制、机床轴定位。

视觉与物联智能 2550

记一个花了3个小时解决的BUG

今天下午开始给我的app的下载功能写删除下载的逻辑 在这个逻辑中,点击了删除按钮后: 1,当该cell正处于下载中时 1,首先暂停全部cell 2,删除该cell 3,开始下载其他手动开始的cell 2,当该cell处于下载暂停中时 1,其他cell正在下载,暂停全部ce...

abc8864的博客 185

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

发现了一个vscode的bug

被一个BUG折磨了3个小时。我知道引起这个BUG的原因,是因为项目中某些配置文件中配置的程序包引用路径出错了,要解决这个问题很简单,只需要将这些配置文件中错误的程序包引用...

带你撸出一手好代码 4218

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

绝望时刻:本地、测试、生产,三个环境三个 BUG

同时,运维人员检查生产环境的服务器配置,发现由于之前的一次系统升级,服务器的 JVM 内存参数配置被错误地修改,导致 JVM 可用内存减少,无法应对大量并发请求,加剧了系统的资源消耗。该条件判断原本是为了过滤掉无效数据,但由于逻辑错误,导致即使数据验证通过,也无法进入数据插入的代码块,而是直接跳过,从而使得系统提示 “提交成功”,但实际上并没有执行数据插入操作。首先,运维人员按照预案,将部分用户流量切换到备用服务器,缓解主服务器的压力,同时暂停了部分非核心功能的服务,减少服务器的资源消耗。

2503_92604243的博客 1036

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Appstore正在审核中,历经27小时的离谱卡审!

最近有一个自营产品许久未更新了,有不少用户反馈有Bug,寻思着趁着端午节顺带手更新了。结果遭遇了卡审...

专注Appstore审核领域。 1592

项目上线后出现bug该怎么解决

在公司中测试人员最基本的职责就是保证项目的质量,尽可能把bug都在上线前找出来。但是实际工作时由于各种各样的原因,不可避免的会有些问题会在上线后被发现。那么如何能够快速的处理这些线上的问题,降低bug的影响范围,减少对公司的业务或者经济损失呢?在这里,我们提供给大家一个基本的处理线上问题的思路。 评估bug的影响范围 解决线上问题 回溯线上问题 一. 第一步 —— 评估bug的影响范围 ​ 评估bug的影响范围是处理线上bug的第一步,通常需要根据评估的结果来决定下一步的处理方案。 影响范围要从哪

黑马程序员官方博客 6245

一个让我整蒙了3个小时的latex bug

完全就是在凭空想象,明明就是知道是这个包clash了但是完全不知道怎么解决。最后整个人都很恼火了。因为以前明明经常用的,怎么会突然在这里就不好使。一直在和chatgpt争论为什么这个错误会出现,它提了一大堆奇奇怪怪的解决方法,甚至还有这个。但是我一直没发现怎么可以设置让生成的表格自适应页宽,如果有人能知道就太棒了!和chatgpt斗智斗勇之后还是发现从别人的问题吸取经验更厉害。弄出来了好开心哈哈哈哈😴。

Pied_Pipers的博客 974

我花了 12 个小时才找到的 JavaScript Bug(5 秒钟就能修复)

前端AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击原文了解更多详情。写异步逻辑时,更要用结构“约束”正确的执行顺序。“如果你不 return 一个 Promise,它就不会等待。数据库还没写入,通知就已经发出(失败),但又没有抛出任何异常。不写 return,链就断了,后面的逻辑执行时机全乱。但很多时候,“小小的假设”才是 bug 的源头。,链条在保存还没结束时就继续执行了通知逻辑。我不是 JS 新手,写了好多年的异步代码。

粉丝们务必加入微信粉丝群 1020

一个历时五天的 Bug

一个程序员在没有成长成为架构师之前,几乎都要跟 Bug为伴,程序员有很多时间都是花在了查找各种 Bug上。 我印象深刻的一个Bug, 是一个服务器网络框架无锁队列的 Bug 。那个 Bug 连续查找了五天的时间,才最后定位出来。 当时我们的分布式存储系统出现了性能瓶颈,定位后发现瓶颈是在服务器网络框架上,所以我们决定为此替换一个最新研发的网络框架。这个新的网络框架为了追求高的性能,采用了无锁队...

勇往直前的专栏 472

一个尘封55年的Bug!由17岁学生开发、风靡了半个世纪的经典游戏,被退休程序员发现关键Bug...

编译 | 郑丽媛出品 | 程序人生(ID:coder_life)在 1969 年 7 月 20 日,阿波罗登月舱着陆月球,第一位踏上月球的美国宇航员 Neil Armstrong,在出舱时说了一句经典:“这是一个人的一小步,也是人类的一大步。”当时,全球约有 6.5 亿观众通过电视直播见证了 Neil Armstrong 在月球上迈出第一步,其中就包括 17 岁的美国高中生 Jim Storer—...

程序人生的博客 1万+

揭秘 Bug 报告的终极技巧——如何写一个好的bug报告?

在这里我会尽力阐明**如何写一个好的bug报告**。我非常希望每一个人在报告bug之前都读一下这篇短文,当然我也希望用户在给我报告bug之前已经读过这篇文章。

君子慎独,不欺暗室;卑以自牧,不欺于心 1971

程序员每天 8 小时都在干嘛?改 bug、对需求、学新技术…

从清晨的任务规划到深夜的问题复盘,详细展现程序员在代码调试、需求沟通、技术学习、团队协作等环节的具体工作,揭示其在互联网行业中不可或缺的角色与价值,为读者呈现一个真实且全面的程序员工作图景,帮助大家了解这一职业的日常状态与挑战。程序员每天的 8 小时是充实而忙碌的,从清晨的规划准备,到代码开发中的改 bug 和新功能实现,再到需求沟通、技术学习和团队协作,每个环节都至关重要。此外,如果项目涉及客户,程序员还可能需要直接与客户沟通,了解客户的真实需求和期望,解答客户的技术疑问,增强客户对项目的信心。

2503_92849134的博客 680

Deepin 24小时制BUG的解决方案

20200326 参考: 《Deepin Linux系统桌面12/24小时制问题》 问题: Deepin默认的时间插件为12小时制,即使你改为24小时制,重启后就会被重置。官方一直没时间修复这个BUG。 解决方案: 1、使用第三方插件 先下载以下文件,并解压(一般在/home/用户名/Downloads):https://github.com/v-svg/dde-dock...

wdhuag的博客 1084
Dora_programmer
博客等级 码龄5年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dora_programmer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值