C语言结构体程序设计

2025-02-27 00:09:31
推荐回答(2个)
回答1:

程序代码如下:

#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++执行结果)


以上,

回答2:

一分钟读懂.c语言程序设计