学生成绩汇总.cpp
-------------------------------------------------------------------
#include <stdio.h>
struct grade
{
char name[20]; /*姓名*/
int termLyexam; /*平时成绩*/
int midTerm; /*期中成绩*/
int endTerm; /*期末成绩*/
float finalGrade; /*最终成绩*/
};
void main()
{
struct grade str[30];
int i=0,j,count=0;
char any='y';
struct grade max;
do
{
count++; /*累加器,计算输入的学生个数*/
printf("请输入第%d个学生的信息\n",i+1);
printf("学生姓名:");
scanf("%s",str[i].name);
printf("平时成绩:");
scanf("%d",&str[i].termLyexam);
printf("期中成绩:");
scanf("%d",&str[i].midTerm);
printf("期末成绩:");
scanf("%d",&str[i].endTerm);
printf("继续输入吗?<y/n>:");
scanf(" %c",&any);
i++;
}while(any=='y'); /*提示用户是否继续输入*/
printf("\n以下是成绩清单:\n");
printf("姓 名\t平时成绩\t期中成绩\t期末成绩\t最终成绩\n");
printf("------\t--------\t--------\t--------\t--------\n");
for(j=0;j<count;j++) /*计算每个学生的最终成绩,count是学员人数*/
{
str[j].finalGrade=str[j].termLyexam*0.1+str[j].midTerm*0.2+str[j].endTerm*0.7; /*计算最终成绩*/
printf("%s\t%d\t\t%d\t\t%d\t\t%.2f\n",str[j].name,str[j].termLyexam,str[j].midTerm,str[j].endTerm,str[j].finalGrade);
}
max.finalGrade=str[0].finalGrade;
for(j=0;j<count;j++) /*求最好的最终成绩*/
{
if(max.finalGrade<str[j].finalGrade)
{
max=str[j];
}
}
printf("\n成绩最好的是%s,最终成绩为:%.2f\n",max.name,max.finalGrade);
}