本帖最后由 5NYouGuo 于 2022-12-10 23:08 编辑
题干:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
说明:编译器:notepad++ 5.1.7(大一新生,刚学不是特别熟练,所以代码有啰嗦的地方或者有错误的请自行改正,当然我特别欢迎你评论出我有待提高的地方。)
[C] 纯文本查看 复制代码 #include <stdio.h>
struct student
{
char id[8];
char name[900];
float yw,math,eng,sum,aver;
}s[10];
int main()
{
// 算个人的总、平均成绩
int i;
for(i = 0;i<10;i++)
{
struct student *p;
p = &s[i];
printf("学号、姓名、语数外(以空格分开):");
scanf("%s %s %f %f %f",s[i].id,(*p).name,&s[i].yw,&s[i].math,&s[i].eng);
s[i].sum = s[i].yw + s[i].math + s[i].eng;
s[i].aver = (s[i].sum) / 3.0;
printf("学号%s、姓名%s、语数外%.1f\t%.1f\t%.1f总分%.1f平均分%.2f\n",s[i].id,(*p).name,p->yw,s[i].math,s[i].eng,s[i].sum,s[i].aver);
printf("\n");
}
// 总平均成绩
float average,sum;
sum=0;
for(i=0;i<10;i++)
{
sum += s[i].yw + s[i].math + s[i].eng ;
}
average = sum / 10.0;
printf("总平均成绩为:%.3f\n",average);
// 最高平均分
int j=0;
for(i=0;i<10;i++)
{
if(s[i].aver>s[j].aver)
{
j=i;
}
}
printf("最高平均分为:%.2f,学号:%s,姓名:%s,语数外分别:%.1f\t%.1f\t%.1f\t\n",s[j].aver,s[j].id,s[j].name,s[j].yw,s[j].math,s[j].eng);
} |