#includestdiohint main int n=0; scanfd&n; char name10; char sno10; int grade; char name_max; char name_min; char sno_max; char sno_min; int max=0; int min=0; for;n0
这段代码有一些问题。首先,字符串数组name和sno的大小应该大于10,以确保能够容纳输入的字符串。其次,指针name_max、name_min、sno_max和sno_min应该初始化为NULL,而不是指向name和sno的指针。最后,在printf语句中应该去掉*,因为name_max、sno_max、name_min和sno_min已经是指针。
下面是修正后的代码:
#include<stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
char name[100];
char sno[100];
int grade;
char *name_max = NULL;
char *name_min = NULL;
char *sno_max = NULL;
char *sno_min = NULL;
int max=0;
int min=0;
for(;n>0;n--)
{
scanf("%s %s %d",name,sno,&grade);
if(max==0)
max=grade;
if(min==0)
min=grade;
if(grade>max)
{
max=grade;
sno_max=sno;
name_max=name;
}
if(grade<min)
{
min=grade;
sno_min=sno;
name_min=name;
}
}
printf("%s %s\n",name_max,sno_max);
printf("%s %s",name_min,sno_min);
return 0;
}
这样修改后,代码将能够正确运行并输出最高分和最低分的姓名和学号
原文地址: https://www.cveoy.top/t/topic/ijbC 著作权归作者所有。请勿转载和采集!