int y;
printf("输入查询信息编号");
scanf("%d",&y);
while(y){
printf("学号:%d\n",y);
printf("姓名:%s\n",stu[y].name);
xingbie();
age();
xingzuo();
printf("你的生日是%d月%d号\n",stu[y].birthday.month,stu[y].birthday.day );
printf("你的联系电话是:%c\n",stu[y].dianhua[11]);
printf("你的年级是:%s\n",stu[y].grade );
printf("你的专业是%s\n",stu[y].zhuanye );
printf("成绩为%d\n",stu[y].score );
break;
我建议你断点调试一下,重点看看数组里面的取值,关注值的变化。
比如171行的函数内,就有问题
y都没有初始化,是一个无意义的未知数,而你就用它来访问stu数组。
181行的函数同样如此。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您提供的信息,很难确定问题的具体原因。但是,以下是一些可能导致问题的常见原因:
程序中存在逻辑错误
您的程序中可能存在逻辑错误,导致计算结果不正确。请检查代码中的逻辑,确保它们能够正确地执行计算。同时,也要确保您正确地使用了运算符和条件语句。
变量类型不匹配
在您的程序中,变量类型不匹配可能导致结果不正确。例如,如果您的程序中使用了整数类型来表示小数,或者使用了字符类型来表示数字,就可能导致结果不正确。请检查您的程序中的变量类型,并确保它们与您的预期相符。
代码中存在语法错误
您的程序中可能存在语法错误,这会导致编译器无法正确解析代码。请仔细检查您的代码,并查找可能存在的语法错误。
用户输入错误
最后,问题也可能源于用户输入错误。请检查用户输入的值,并确保它们符合您的预期。您还可以使用调试工具来检查程序中的变量值和执行过程,以找出问题的具体原因。
总之,调试程序需要一定的技能和经验,但是您可以使用调试工具和技术来诊断和修复问题。如果您遇到困难,可以向其他开发者或在线社区寻求帮助。