代码不完整,贴出完整代码看看,你连输入姓名的代码都没有,插入链表的也没有
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在代码中,有一些地方存在潜在的问题,可能导致程序输出不正常的结果:
1.在录入学生成绩的部分,使用了错误的变量类型和赋值方式。应该使用整型变量来保存学生的成绩,而不是使用字符串变量。正确的方式是:
int chinese, math, english;
scanf("%d %d %d", &chinese, &math, &english);
fresh->student.chinese = chinese;
fresh->student.math = math;
fresh->student.english = english;
2.在查询学生信息的部分,ID变量没有被正确地赋值,导致无法查找到对应的学生信息。正确的方式是:
scanf("%d", &ID); //读取需要查找的学生ID
3.在保存学生信息的部分,printf语句中的变量名称存在错误,应该使用“->”而不是“>”符号。正确的方式是:
printf("%d %s %d %s %s %d %d %d\n", move->student.ID, move->student.name, move->student.age, move->student.sex, move->student.tel, move->student.chinese, move->student.math, move->student.english);
另外,在处理int类型的越界问题时,应该注意数据类型的范围,以及数据溢出的可能性。对于C语言中的int类型,其范围是-2,147,483,648到2,147,483,647,如果超出了这个范围,可能会导致越界的问题。可以使用long long等更大的数据类型来避免这种情况的发生。另外,可以在编程时使用条件语句和数据验证等方式来保证程序的稳定性和正确性。
你的fresh新节点根本没加入链表啊