c语言查询成绩为空,求救!!这个查询成绩无论输入什么都是学生不存在

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

struct student{

int num;

char sex[5],name[10];

int room,chinese,math,english;

double total,aver;}s[50];

void main()

{

int i,n;

struct student s[50];

struct student input_student();

void output_student(struct student s[],int n);

int Student_SearchByIndex(int xuehao);

int Student_SearchByName(char name[]);

printf("请输入学生总人数:");

scanf("%d",&n);

for(i=0;i

printf("\n 请输入第%d学生基本信息: \n",i+1);

s[i]=input_student();

}

printf("\n 输出学生信息表 \n");

printf(" ______________________________________________________________________\n");

output_student(s,n);

printf(" |______________________________________________________________________|\n\n");

while(1){

int choose;

printf("\n请输入您要查询学生的方式:\n\n");

printf("1、按学号查询\n2、按姓名查询\n\n");

printf("3、按名次查询\n4、按班级查询\n\n");

printf("请选择:");

scanf("%d",&choose);

while(getchar()!='\n');

if (choose==1){

int xuehao;int index;

printf("请输入要查询的学生的学号:");

scanf("%d",&xuehao);index=Student_SearchByIndex(xuehao);

if (index==-1)

{printf("学生不存在!\n");

}

else

{

printf("你要查询的学生信息为:学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分\n");

printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[index].num,s[index].sex,s[index].name,s[index].room,s[index].chinese,s[index].math,s[index].english,s[index].total,s[index].aver);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{break;}

}

else if (choose==2)

{

char xingming[20];

int index;

printf("请输入要查询的学生的姓名:");

scanf("%s",&xingming);

getchar();

index=Student_SearchByName(xingming);

if (index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要查询的学生信息为:学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分\n");

printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[index].num,s[index].sex,s[index].name,s[index].room,s[index].chinese,s[index].math,s[index].english,s[index].total,s[index].aver);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

else if (choose==0)

{printf("\n您选择了不查询!\n");

break;

}

}

}

struct student input_student()

{struct student s;

printf("学号 性别 姓名 班别 语文 数学 英语:\n");

scanf("%d%s%s%d%d%d%d",&s.num,s.sex,s.name,&s.room,&s.chinese,&s.math,&s.english);

s.total=s.chinese+s.math+s.english; s.aver=s.total/3;

return s;

}

void output_student(struct student s[],int n)

{int i;

printf(" |学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分 |\n");

for(i=0;i

printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[i].num,s[i].sex,s[i].name,s[i].room,s[i].chinese,s[i].math,s[i].english,s[i].total,s[i].aver);

}

}

int Student_SearchByIndex(int xuehao)

{

int i;

for (i=0;i<50;i++)

{

if (s[i].num==xuehao)

{return i;}

}return -1;

}

int Student_SearchByName(char xingming[])

{int i;for (i=0;i<50;i++)

{if (strcmp(s[i].name,xingming)==0)

{return i;}

}return -1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值