题目内容:
某班有5名同学,建立一个学生的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学生的平均成绩及名次。(注:定义一个结构体类型,用结构指针作为函数参数)
输入格式:
%ld %s %f %f %f
输出格式:
%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n
输入样例:
201701 zhao 29.8 85.4 65.4
201702 qian 96.5 87.5 65.4
201703 sun 85.4 65.4 84.6
201704 li 63.4 95.4 86.3
201705 zhou 65.9 84.6 97.5
输出样例:
Number: Name: score: Average: rank:
201701 zhao 29.8 85.4 65.4 60.2 5
201702 qian 96.5 87.5 65.4 83.1 1
201703 sun 85.4 65.4 84.6 78.5 4
201704 li 63.4 95.4 86.3 81.7 3
201705 zhou 65.9 84.6 97.5 82.7 2文章来源:https://www.toymoban.com/news/detail-431547.html
时间限制:500ms内存限制:32000kb文章来源地址https://www.toymoban.com/news/detail-431547.html
#include <stdio.h>
struct student{
int num,rank;
char name[20];
float score[3];
float average;
}stu[5];
void compare(){
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(stu[i].average<=stu[j].average)
stu[i].rank++;
}
float calculate(struct student *p){
int j;float sum=0;
for(j=0;j<3;j++){
sum+=p->score[j];
}
return sum/3;
}
int main()
{
struct student *p;
for(p=stu;p<stu+5;p++){
scanf("%ld %s %f %f %f",&p->num,&p->name,&p->score[0],&p->score[1],&p->score[2]);
p->average=calculate(p);
}
printf("Number: Name: score: Average: rank:\n");
compare();
for(p=stu;p<stu+5;p++)
printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",p->num,p->name,p->score[0],p->score[1],p->score[2],p->average,p->rank);
return 0;
}
到了这里,关于C语言程序设计:某班有5名同学,建立一个学生的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学生的平均成绩及名次。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!