#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student
{
char name[10];
int score;
}stu;
stu stu1[5000];
int main()
{
int n,m;
char a[5000];
scanf("%d%d",&n,&m);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%s%d",&stu1[i].name,&stu1[i].score);
}
int flag;
for(j=1;j<=m;j++)
{
scanf("%s",&a[j]);
}
for(j=1;j<=m;j++)
{
flag=0;
for(i=1;i<=n;i++)
{
while(strcmp(a[j],stu1[i].name))
{
printf("%d",stu1[i].score);
flag=1;
break;
}
}
if(flag==0)printf("not exist!");
printf("\n");
}
return 0;
}
while(strcmp(a[j],stu1[i].name))改成while(strcmp(&a[j],stu1[i].name))
你这代码也不行啊,a应该定义成二维数组,不然你这
for(j=1;j<=m;j++)
{
scanf("%s",&a[j]);
没法搞的啊
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student
{
char name[10];
int score;
}stu;
stu stu1[5000];
int main()
{
int n,m;
char a[5000][10];
scanf("%d%d",&n,&m);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%s%d",stu1[i].name,&stu1[i].score);
}
int flag;
for(j=1;j<=m;j++)
{
scanf("%s",a[j]);
}
for(j=1;j<=m;j++)
{
flag=0;
for(i=1;i<=n;i++)
{
while(strcmp(a[j],stu1[i].name))
{
printf("%d",stu1[i].score);
flag=1;
break;
}
}
if(flag==0)printf("not exist!");
printf("\n");
}
return 0;
}