Description
有5个学生,每个学生的数据包括:学号(字符数组型)、姓名(字符数组型)、C语言成绩(整型),编写程序先从键盘上输入学生们的数据,再输入一个学生的学号,要求输出该学号对应的学生信息,未找到该学生时输出not found。
Input
输入仅6行,前5行输入5个学生的学号、姓名、C语言成绩,要求数据之间用空格隔开。第6行输入一个学号信息。
Output
输出仅一行,输出学号对应的学生信息或not found (两单词中间有一空格)。
Sample Input
111 yi 89
222 er 87
333 san 98
444 si 90
555 wu 56
333
Sample Output
333 san 98
Source
方法一(结构体+数组):
#include <stdio.h>
#include <string.h>
struct test
{
char num[20];
char name[20];
int score;
};
int main()
{
char keynum[10];
int i;
struct test stu[5];
for ( i = 0; i <5; i++)
{
scanf("%s%s%d",stu[i].num,stu[i].name,&stu[i].score);
}
scanf("%s",keynum);
for ( i = 0; i <5; i++)
{
if (strcmp(keynum,stu[i].num)==0)
{
printf("%s %s %d",stu[i].num,stu[i].name,stu[i].score);
break;
}
}
if (i==5)
{
printf("not found\n");
}
return 0;
}
方法二(结构体+指针):
#include <stdio.h>
#include <string.h>
struct test
{
char num[20];
char name[20];
int score;
};
int main()
{
char keynum[10];
struct test stu[5];
struct test *p;
for ( p = stu; p <stu+5; p++)
{
scanf("%s%s%d",(*p).num,(*p).name,&(*p).score);
}
scanf("%s",keynum);
for ( p = stu; p <stu+5; p++)
{
if (strcmp(keynum,(*p).num)==0)
{
printf("%s %s %d",(*p).num,(*p).name,(*p).score);
break;
}
}
if (p==stu+5)
{
printf("not found");
}
return 0;
}