大侠们帮我找找问题,谢谢了
这个程序其他问题倒没有,唯一的一个问题就是输出的成绩都是0.00,检查数据类型,应该是没问题,为什么呢?大家帮我分析分析,谢谢了
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<conio.h>
#include<time.h>
struct student
{
char name[10];
char num[50];
float chinese;
float math;
float english;
float chemistry;
float physics;
float totalscore;
};
student s[1000];
int amount,xz1;
//基本信息的录入
void print1()
{
printf(" *************************************************\n\n");
printf(" 高考电脑自动评分系统\n\n");
printf(" *************************************************\n\n");
printf("您想输入几位学生的成绩,请告诉电脑:");
scanf("%d",&amount);
printf("您想输入---%d---位同学的成绩。\n",amount);
for(int i=0;i<amount;i++)
{
printf(" <<第%d位同学的信息>>\n\n",i+1);
printf("\t请输入学生的姓名---");
scanf("%s",&s[i].name);
printf("\t请输入学生的编号---");
scanf("%s",&s[i].num);
printf("\t请输入学生的成绩\n");
printf("\t语文成绩---");
scanf("%s",&s[i].chinese);
printf("\t数学成绩---");
scanf("%s",&s[i].math);
printf("\t英语成绩---");
scanf("%s",&s[i].english);
printf("\t化学成绩---");
scanf("%s",&s[i].chemistry);
printf("\t物理成绩---");
scanf("%s",&s[i].physics);
printf("\n");
}
}
//单科和最高分的目录
void submenu()
{
printf("\n");
printf("\t输入您要查询的项目:\n");
printf("\t0------------打印总分最高分\n");
printf("\t1------------打印语文最高分\n");
printf("\t2------------打印数学最高分\n");
printf("\t3------------打印英语最高分\n");
printf("\t4------------打印化学最高分\n");
printf("\t5------------打印物理最高分\n");
printf("\t6------------退出\n");
}
//操作目录
void rootmenu()
{
printf("\n");
printf("\t你想知道什么高考信息,请选择:\n");
printf("\t0--------打印个人的总分\n");
printf("\t1--------打印所有人信息\n");
printf("\t2--------打印总分和单科最高分\n");
printf("\t3--------退出\n");
}
//单科和最高分的查询
void subquery()
{
system("cls");
while(1)
{
int b;
submenu();
printf("\t\t");
printf("输入您要查询的项目:");
scanf("%d",&b);
system("cls");
printf("\n\n\n");
int aaa=0;
if(b==0)
{
float j[1000];
float max=0;
for(int g=0;g<amount;g++)
{
j[g]=s[g].chinese+s[g].math+s[g].english+s[g].physics+s[g].chemistry;
if(max<j[g])
{
max=j[g];
aaa=g;
}
}
printf("\t\t%s的总分为最高分,分数为:%.2f分\n",s[aaa].name,max);
}
if(b==1)
{
float max1=s[0].chinese;
for(int g=0;g<amount;g++)
{
if(max1<s[g].chinese)
{
max1=s[g].chinese;
aaa=g;
}
}
printf("\t\t语文最高分为%s,分值为:%.2f分",s[aaa].name,max1);
}
if(b==2)
{
float max2=s[0].math;
for(int g=0;g<amount;g++)
{
if(max2<s[g].math)
{
max2=s[g].math;
aaa=g;
}
}
printf("\t\t数学最高分为%s,分值为:%.2f分",s[aaa].name,max2);
}
if(b==3)
{
float max3=s[0].english;
for(int g=0;g<amount;g++)
{
if(max3<s[g].english)
{
max3=s[g].english;
aaa=g;
}
}
printf("\t\t英语最高分为%s,分值为:%.2f分",s[aaa].name,max3);
}
if(b==4)
{
float max4=s[0].chemistry;
for(int g=0;g<amount;g++)
{
if(max4<s[g].chemistry)
{
max4=s[g].chemistry;
aaa=g;
}
}
printf("\t\t物理最高分为%s,分值为:%.2f分",s[aaa].name,max4);
}
if(b==5)
{
float max5=s[0].physics;
for(int g=0;g<amount;g++)
{
if(max5<s[g].physics)
{
max5=s[g].physics;
aaa=g;
}
}
printf("\t\t化学最高分为%s,分值为:%.2f分",s[aaa].name,max5);
}
if(b==6)
{
system("cls");
rootmenu();
}
}
}
//查询每个学生的所有单项成绩
void rootquery()
{
while(1)
{
int a;
printf("\t\t");
scanf("%d",&a);
system("cls");
if(a==0)
{
for(int y=0;y<amount;y++)
{
s[y].totalscore=s[y].chinese+s[y].math+s[y].english+s[y].physics+s[y].chemistry;
printf("\t\t%s的总分为%.2f\n",s[y].name,s[y].totalscore);
}
}
if(a==1)
{
for(int h=0;h<amount;h++)
{
printf("\t\t%s的个人信息为:语文%.2f 数学%.2f 英语%.2f\n",s[h].name,s[h].chinese,s[h].math,s[h].english);
printf("\t\t\t物理%.2f 化学%.2f\n",s[h].physics,s[h].chemistry);
}
}
if(a==3)
{
break;
}
rootmenu();
if(a==2)
{
subquery();
}
}
}
main()
{
print1();
rootmenu();
rootquery();
}