上图为题目,我用了两种方法解答,本质是一样的,为什么用结构体的方法只是部分通过呢,而第一种方法就全部通过了。两种方法已经附上。
#include
int main()
{
__**#if 0
char name[100][100]={0},id[100][100]={0};
int marks[100]={0},num=0,i=0,j=0;
int temp1=0,temp2=0;
int min,max;
scanf("%d",&num);
for(;i
{
scanf("%s",&name[i]);
scanf("%s",&id[i]);
scanf("%d",&marks[i]);
}
min=marks[0];
max=marks[0];
for(i=1;i
{
if(marks[i]
{
min=marks[i];
temp1=i;
}
}
for(j=1;j
{
if(marks[j]>max)
{
max=marks[j];
temp2=j;
}
}
printf("%s %s\n",name[temp2],id[temp2]);
printf("%s %s\n",name[temp1],id[temp1]);
#endif__**
typedef struct student{
char name[100][100];
char id[100][100];
int marks[100];
}STU;
int num=0,i=0,j=0;
int temp1=0,temp2=0;
int min,max;
STU stu1;
scanf("%d",&num);
for(;i
{
scanf("%s",&stu1.name[i]);
scanf("%s",&stu1.id[i]);
scanf("%d",&stu1.marks[i]);
}
min=stu1.marks[0];
max=stu1.marks[0];
for(i=1;i
{
if(stu1.marks[i]
{
min=stu1.marks[i];
temp1=i;
}
}
for(j=1;j
{
if(stu1.marks[j]>max)
{
max=stu1.marks[j];
temp2=j;
}
}
printf("%s %s\n",stu1.name[temp2],stu1.id[temp2]);
printf("%s %s\n",stu1.name[temp1],stu1.id[temp1]);
return 0;
}