程序代码如下:
#include
#include
#include
#define N 5 /* 学生人数 */
#define M 3 /* 课程科目 */
struct student /* 定义结构体类型 */
{
int num;
char name[20];
float score[M];
float sum;/*一个学生三门课的总分*/
} stu[5];
int STDGRADE_input(void)
{
int i, j;
for(i=0; i{
printf("请输入学生学号:");
scanf("%d", &stu[i].num);
printf("请输入学生姓名:");
scanf("%s", &stu[i].name);
for(j=0; j{
printf("请输入学生第%d门课程成绩:", j+1);
scanf("%f", &stu[i].score[j]);
stu[i].sum += stu[i].score[j];
}
}
printf("成绩信息输入完毕\n\n");
return 0;
}
int STDGRADE_course_aver(void)
{
int i;
for(i=0; i{
printf("学号:%d, 姓名:%s,平均成绩:%f\n", stu[i].num, stu[i].name, stu[i].sum/(float)M);
}
printf("平均成绩输出完毕\n\n");
return 0;
}
int STDGRADE_sum_sort(void)
{
int i, j;
struct student tmp;
for(i=0; i{
memcpy(&tmp, &stu[i], sizeof(struct student));
for(j=i+1; j{
if(stu[j].sum > tmp.sum)
{
memcpy(&stu[i], &stu[j], sizeof(struct student));
memcpy(&stu[j], &tmp, sizeof(struct student));
memcpy(&tmp, &stu[j], sizeof(struct student));
}
}
}
return 0;
}
int STDGRADE_output(void)
{
int i;
for(i=0; i{
printf("学号:%d, 姓名:%s, 总分:%f,\n", stu[i].num, stu[i].name, stu[i].sum);
}
return 0;
}
int main()
{
STDGRADE_input();
STDGRADE_course_aver();
STDGRADE_sum_sort();
STDGRADE_output();
return 0;
}
运行结果如下(VC6++执行结果)
以上,
一分钟读懂.c语言程序设计