一个小小简单的c语言程序

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:47:13
通过赋初值的方式将下图中的表格数据放到一个结构体类型的数组中,计算出每一个学生的平均成绩和总成绩,最后输出总成绩第一名和最后一名的学号、姓名和总成绩值。 结构体类型包含以下成员: long xh; char xm[20]; int cj1,cj2,cj3,pjcj,zcj;
其中xh 为学号,xm为姓名,cj1、cj2、cj3分别为三门课的成绩,pjcj为平均成绩,zcj为总成绩。 (下图的表格为数据,可以在数组说明时给定初值)
附图:

xh xm cj1 cj2 cj3 pjcj zcj
200701001 Zhang Piny 67 92 88 0 0
200801009 Li Fang 78 96 85 0 0
200801020 Wang Yang 83 75 71 0 0
200801021 Zhao Xiaohu 69 82 73 0 0
220801045 Qian Xiaoli 81 95 82 0 0
附一个新的数据表,略有改动,不过对编写影响不大:
xh xm cj1 cj2 cj3 cj4 cj4
200701001 Zhang Piny 67 92 88 0 0
200801009 Li Fang 78 96 85 0 0
200801020 Wang Yang 83 75 71 0 0
200801021 Zhao Xiaohu 69 82 73 0 0
200801045 Qian Xiaoli 81 95 82 0 0

#include <stdio.h>

struct student
{
/*其中xh 为学号,xm为姓名,cj1、cj2、cj3分别为三门课的成绩,
pjcj为平均成绩,zcj为总成绩*/
long xh;
char xm[20];
float cj1,cj2,cj3;
float pjcj,zcj;
};

void main()
{
student stu[] = {{200701001, "ZhangPiny", 67, 92, 88, 0, 0},
{200801009, "LiFang", 78, 96, 85, 0, 0},
{200801020, "WangYang", 83, 75, 71, 0, 0},
{200801021, "ZhaoXiaohu", 69, 82, 73, 0, 0},
{220801045, "QianXiaoli", 81, 95, 82, 0, 0}};

int i;
int max, min;
for(i = 0; i < 5; i++)
{
stu[i].zcj = stu[i].cj1 + stu[i].cj2 + stu[i].cj3;
}
for(i = 0; i < 5; i++)
{
stu[i].pjcj = stu[i].zcj / 3;
}
for(i = 0, max = 0, min = 0; i < 5; i++)
{
if(stu[i].zcj < stu[i+1].zcj)
max = i;
else
min = i;
}
printf("The Best:\n");