C语言:使用结构体计算三名学生每名学生的三科成绩的总成绩、平均成绩及名次

阅读: 评论:0

C语言:使用结构体计算三名学生每名学生的三科成绩的总成绩、平均成绩及名次

C语言:使用结构体计算三名学生每名学生的三科成绩的总成绩、平均成绩及名次

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

假设有3名学生,每名学生的数据包括学号、姓名、3门课程的成绩。编写程序,计算每名学生的总成绩、平均成绩及名次。
要求使用结构体,结构体类型变量的初值在程序中给定(方便调试);采用p->成员名形式,按照原始输入顺序输出原始学生信息表(学号、姓名、3门成绩、总成绩、平均成绩及按总成绩排名次);经过计算总成绩、平均成绩和排名次后,要求采用p->成员名形式表示输出结果。

参考代码

#include<stdio.h>int swap(int a[2][3]){int t, i, j;for(i=0; i<2; i++){for(j=0; j<2-i; j++){if(a[0][j] < a[0][j+1]){t = a[0][j];a[0][j] = a[0][j+1];a[0][j+1] = t;t = a[1][j];a[1][j] = a[1][j+1];a[1][j+1] = t;}}}return a[2][3];
}void main(){int i, j, tmp[2][3], t;struct Student{char id[18], name[10];int subject[3], sum, rank;double average;}stu[3] = {{"001", "Bob", 66, 88, 77, 0, 0, 0}, {"002", "Sam", 98, 87, 76, 0, 0, 0}, {"003", "Amy", 89, 78, 87, 0, 0, 0}}, *st;for(i=0; i<3; i++){for(j=0; j<3; j++)stu[i].sum += stu[i].subject[j];stu[i].average = (double)(stu[i].sum) / 3.0;}for(i=0; i<3; i++){tmp[0][i] = stu[i].sum;tmp[1][i] = i;}tmp[2][3] = swap(tmp);for(i=0; i<3; i++)stu[tmp[1][i]].rank = i+1;printf("IDtNametSub1tSub2tSub3tSUMtAVG.tRankn");printf("-------------------------------------------------------------n");st = &stu[0];for(i=0; i<3; i++){printf("%st%st%dt%dt%dt%dt%.2ft%dn",st -> id, st -> name, st -> subject[0], st -> subject[1], st -> subject[2], st -> sum, st -> average, st -> rank);st++;}
}

运行结果

ID      Name    Sub1    Sub2    Sub3    SUM     AVG.    Rank
-------------------------------------------------------------
001     Bob     66      88      77      231     77.00   3
002     Sam     98      87      76      261     87.00   1
003     Amy     89      78      87      254     84.67   2

本文发布于:2024-02-04 08:24:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170703039453931.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:成绩   学生   三名   名次   总成绩
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23