用结构体数组存储学生信息,输入学生学号,查询相应的成绩

用结构体数组存储学生信息,输入学生学号,查询相应的成绩
主要是熟练一下结构体的运用,思路:先存储学生信息,然后做相应的查询,在存储过程中,设置以#为结束标志,在查找过程中,同样以#为结束标志,这里用到了strcmp(char1, char2),代码如下:

#include 
#include 
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;
	
}

用结构体数组存储学生信息,输入学生学号,查询相应的成绩_第1张图片

你可能感兴趣的:(C基础)