急求C语言编程题答案
发布网友
发布时间:2022-04-30 18:04
我来回答
共3个回答
热心网友
时间:2022-06-28 19:49
// 可能我理解错了,最高分的意思,我求的是每门的最高分的同学。
#include <stdio.h>
typedef struct student
{
char num[10];
char name[10];
float course1;
float course2;
float course3;
float avag;
}stu;
int main()
{
int i, j[3];
float av[3] = {0}, // 记录每门课程的平均分
sum =0 ,
max[3] = {0}; // 记录每门的最高分
stu s[5];
for(i = 0; i < 5; i++)
{
printf("请输入学生%d的数据:\n", i+1);
printf("学号:");
scanf("%s", s[i].num);
printf("姓名:");
scanf("%s", s[i].name);
printf("课程1:");
scanf("%f", &s[i].course1);
printf("课程2:");
scanf("%f", &s[i].course2);
printf("课程3:");
scanf("%f", &s[i].course3);
sum = s[i].course1 + s[i].course2 + s[i].course3;
s[i].avag = sum / 3;
av[0] += s[i].course1;
av[1] += s[i].course2;
av[2] += s[i].course3;
}
for(i = 0; i < 3; i++)
{
av[i] /= 5;
printf("课程%d的平均分: %f\n", i, av[i]);
}
for(i = 0; i < 5; i++)
{
if(s[i].course1 > max[0])
{
j[0] = i;
max[0] = s[i].course1;
}
if(s[i].course2 > max[1])
{
j[1] = i;
max[1] = s[i].course2;
}
if(s[i].course3 > max[2])
{
j[2] = i;
max[2] = s[i].course3;
}
}
printf("输出每门课程最高分的学生的数据:\n");
for(i = 0; i < 3; i++)
{
printf("学号:%s\n", s[j[i]].num);
printf("姓名:%s\n", s[j[i]].name);
printf("课程1:%f\n", s[j[i]].course1);
printf("课程2:%f\n", s[j[i]].course2);
printf("课程3:%f\n", s[j[i]].course3);
printf("平均分:%f\n", s[j[i]].avag);
}
return 0;
}
// 测试
请输入学生1的数据:
学号:1
姓名:1
课程1:20
课程2:30
课程3:40
请输入学生2的数据:
学号:2
姓名:2
课程1:10
课程2:40
课程3:30
请输入学生3的数据:
学号:3
姓名:3
课程1:40
课程2:10
课程3:50
请输入学生4的数据:
学号:4
姓名:4
课程1:30
课程2:50
课程3:10
请输入学生5的数据:
学号:5
姓名:5
课程1:50
课程2:20
课程3:20
课程0的平均分: 30.000000
课程1的平均分: 30.000000
课程2的平均分: 30.000000
输出每门课程最高分的学生的数据:
学号:5
姓名:5
课程1:50.000000
课程2:20.000000
课程3:20.000000
平均分:30.000000
学号:4
姓名:4
课程1:30.000000
课程2:50.000000
课程3:10.000000
平均分:30.000000
学号:3
姓名:3
课程1:40.000000
课程2:10.000000
课程3:50.000000
平均分:33.333332
热心网友
时间:2022-06-28 19:49
#include<stdio.h>
typedef struct STUDENT{
char id[20];
char name[20];
float score[3];
float sum;
}student[5];
int main(){
student s;
int i,j,k=0;
float score[3],max=0;
for(j=0;j<3;j++){
score[j]=0;
}
for(i=0;i<5;i++){
scanf("%s%s%f%f%f",&s[i].id,&s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);
s[i].sum=s[i].score[0]+s[i].score[1]+s[i].score[2];
for(j=0;j<3;j++){
score[j]+=s[i].score[j];
}
if(s[i].sum>max){
max=s[i].sum;
k=i;
}
}
printf("Average:%.2f %.2f %.2f\n",score[0]/5,score[1]/5,score[2]/5);
printf("Max score is Id:%s, Name:%s, Score:%.2f, %.2f, %.2f, Average:%.2f\n",s[k].id,s[k].name,s[k].score[0],s[k].score[1],s[k].score[2],s[k].sum/3);
return 0;
}
热心网友
时间:2022-06-28 19:50
估计要用结构体类型的数据,我还没学到这里来。