C第七天任务
张三 数学80 语文 93 英语 67
李四 数学90 语文84 英语 79
王二 数学 61 语文 73 英语59
请将以上数据放入顺序表中,并根据姓名查询每个人成绩
.
.
.
.
.
.
.
.
.
.
.
答案代码:
代码1:
#include <stdio.h>
#include <string.h>
void main()
{
char nam[10];
struct Student
{
char name[10];
int math;
int chinese;
int english;
}st1,st2,st3;
printf("请按顺序输入张三、李四、王二的数学、语文、英语成绩中间用一个空格来分隔\n");
scanf("%s %d %d %d",st1.name,&st1.math,&st1.chinese,&st1.english);
scanf("%s %d %d %d",st2.name,&st2.math,&st2.chinese,&st2.english);
scanf("%s %d %d %d",st3.name,&st3.math,&st3.chinese,&st3.english);
while(1)
{
printf("请输入您要查询的学生名字:");
scanf("%s",nam);
if (!strcmp(nam,st1.name))
printf("%s 数学%d 语文%d 英语%d\n\n\n",st1.name,st1.math,st1.chinese,st1.english);
else if (!strcmp(nam,st2.name))
printf("%s 数学%d 语文%d 英语%d\n\n\n",st2.name,st2.math,st2.chinese,st2.english);
else if (!strcmp(nam,st3.name))
printf("%s 数学%d 语文%d 英语%d\n\n\n",st3.name,st3.math,st3.chinese,st3.english);
else
printf("查无此人\n\n\n");
}
}
代码2:
#include <stdio.h>
#include <string.h>
typedef struct
{
char name[20];
int Lan;
int Eng;
int Math;
} stu;
typedef struct
{
stu StuData[20];
int StuNum;
} Dstu;
Dstu MyStu; //定义顺序表
void MenuShow()
{
printf("--------学生数据管理系统--------\n");
printf("---------1.学生数据录入---------\n");
printf("---------2.学生数据查询---------\n");
}
void Data_Input(void)
{
printf("请输入姓名\n");
scanf("%s",MyStu.StuData[MyStu.StuNum].name);
printf("请输入 语文-英语-数学\n");
scanf("%d-%d-%d",&MyStu.StuData[MyStu.StuNum].Lan,&MyStu.StuData[MyStu.StuNum].Eng,&MyStu.StuData[MyStu.StuNum].Math);
printf("input:%s %d %d %d\n",MyStu.StuData[MyStu.StuNum].name,MyStu.StuData[MyStu.StuNum].Lan,MyStu.StuData[MyStu.StuNum].Eng,MyStu.StuData[MyStu.StuNum].Math);
MyStu.StuNum++;
printf("**********************************\n");
printf("**********************************\n");
}
void Data_Output(void)
{
char buf[20];
int i;
printf("请输入学生姓名\n");
scanf("%s",buf);
for(i=0;i<MyStu.StuNum;i++)
{
if(!strcmp(MyStu.StuData[i].name,buf)) //不主动退出循环 防止有重名
{
printf("output:语文:%d 英语:%d 数学:%d\n",MyStu.StuData[i].Lan,MyStu.StuData[i].Eng,MyStu.StuData[i].Math);
printf("**********************************\n");
printf("**********************************\n");
}
}
}
int main()
{
int temp;
memset((unsigned char *)&MyStu,0,sizeof(Dstu));
while(1)
{
MenuShow();
scanf("%d",&temp);
switch(temp)
{
case 1:
Data_Input();
break;
case 2:
Data_Output();
break;
default:
break;
}
}
return 0;
}
具体详情待补充