第二个测试点过了,就是第一个和第二个过不了,自学C,看了很久也发现不了问题,请各位帮帮忙
修改了下,试试:
#include<stdio.h>
#define N 50
struct student{
char name[11];
char id[11];
int grade;
};
int main()
{
int n,i,max,min,max_i,min_i;
struct student stu[N];
if(scanf("%d",&n)==1)
{
for(i=0;i<n;i++)
{
if(scanf("%s%s%d",stu[i].name,stu[i].id,&stu[i].grade))
{
if(i==0)
{
max = min = stu[i].grade;
max_i = min_i = i;
}else{
if(max < stu[i].grade)
{
max = stu[i].grade;
max_i = i;
}
if(min > stu[i].grade)
{
min = stu[i].grade;
min_i = i;
}
}
}
}
printf("%s %s\n",stu[max_i].name,stu[max_i].id);
printf("%s %s\n",stu[min_i].name,stu[min_i].id);
}else{
printf("Failed to read integer.\n");
}
return 0;
}
第一二个输入不要带地址符&,输出也不要
第16行:
scanf("%s %s %d", &stu[i].name, &stu[i].id, &stu[i].grade);
应改为:
scanf("%s %s %d", stu[i].name, stu[i].id, &stu[i].grade);
第35行:
printf("%s %s\n", &stu[i].name, &stu[i].id);
应改为:
printf("%s %s\n", stu[i].name, stu[i].id);
第39行:
printf("%s %s\n", &stu[i].name, &stu[i].id);
应改为:
printf("%s %s\n", stu[i].name, stu[i].id);
就成这样了 ::>_<::
就成这样了 ::>_<::