要求:
http://codeup.cn/problem.php?cid=100000576&pid=4
说明:
在之前那个查找学生信息的代码基础上改了改
代码:
#include <stdio.h>
struct studentrecord{
int num;
char studentname[100];
char gender[100];
int old;
}student[1010];
int selectrecord[10000];
//这个二维数组的作用是来记录学号,输出时保证前面的0不会被省去
char str[10000][100];
int main(){
int N,M;
int countexample;
int pp = 0;
while(scanf("%d",&countexample) != EOF){
for(int aa = 0;aa <countexample;aa++){
getchar();
scanf("%d",&N);
for(int i = 0;i <N;i++){
getchar();
//把学号记录到二维数组中,再用sscanf转到结构体学号中
scanf("%s %s %s %d",&(str[i]),&(student[i].studentname),&(student[i].gender),&(student[i].old));
sscanf(str[i],"%d",&(student[i].num));
}
getchar();
scanf("%d",&selectrecord[pp]);
for(int j = 0;j <N;j++){
//比较的时候用数字形式比较,输出时用字符串输出
if(selectrecord[pp] == student[j].num){
printf("%s %s %s %d\n",str[j] ,student[j].studentname,student[j].gender,student[j].old);
pp++;
}
}
}
}
return 0;
}