用结构体数组存储学生信息,输入学生学号,查询相应的成绩
主要是熟练一下结构体的运用,思路:先存储学生信息,然后做相应的查询,在存储过程中,设置以#为结束标志,在查找过程中,同样以#为结束标志,这里用到了strcmp(char1, char2),代码如下:
#include <stdio.h>
#include <string.h>
struct info{
char name[12];
char id[9];
char score[10];
};
int readin(struct info *a)
{
int n=0,i=0;
while(1)
{
scanf("%s",a[i].name);
if(!strcmp(a[i].name,"#"))//这里表示输入为#表示输入结束
break;
scanf("%s",a[i].id);
scanf("%s",a[i].score);
i++;
n++;
}
return n;//n表示存储的学生条数
}
void findout(struct info *a, char *b, int n)
{
int i=0,j=0;
while(1)
{
if(!strcmp(a[i].id, b))//这里表示的是搜索到要查询的学号的情况
{
printf("%s score is: %s\n",a[i].name,a[i].score);
break;
}
i++;
n--;
if(n==0)
{
printf("not found\n");
break;
}
}
}
int main()
{
struct info list[30];
char id[10];
int n;
n = readin(list);
while(1) //这里是实现循环输入查询,多次查询
{
printf("please put in you id: ");
scanf("%s",id);
if(!strcmp(id,"#"))
break;
findout(list,id,n);
}
return 0;
}