不会,求各位大佬帮忙

设计一个学生结构体类型student,包括学生学号no,姓名name,成绩cj(三门课),求5个学生每个学生的平均成绩,并将原有数据和计算出的平均分数存放到磁盘文件stud中。

参考GPT和自己的思路:

好的,这是一个关于C语言的问题。

首先,我们需要定义一个结构体类型,包含学号、姓名和三门课的成绩:

struct student {
    int no;
    char name[20];
    float cj[3];
};

然后,我们需要创建5个学生的结构体变量并初始化,这里我假设学号从1开始依次递增:

struct student stu[5] = {
    {1, "张三", {80, 75, 67.5}},
    {2, "李四", {65, 88.5, 92}},
    {3, "王五", {75, 81.5, 78}},
    {4, "赵六", {90.5, 87, 89}},
    {5, "钱七", {82, 89, 93}}
};

接下来,我们可以通过一个for循环计算每个学生的平均分数:

for (int i = 0; i < 5; i++) {
    float sum = 0;
    for (int j = 0; j < 3; j++) {
        sum += stu[i].cj[j];
    }
    float avg = sum / 3;
    printf("学号:%d,姓名:%s,平均成绩:%.1f\n", stu[i].no, stu[i].name, avg);
}

最后,我们将原有数据和计算出的平均分数存放到磁盘文件stud中:

FILE *fp = fopen("stud.txt", "w");
if (fp == NULL) {
    printf("文件打开失败!\n");
    return 1;
}
for (int i = 0; i < 5; i++) {
    fprintf(fp, "学号:%d,姓名:%s,成绩:%.1f,%.1f,%.1f,平均成绩:%.1f\n", 
            stu[i].no, stu[i].name, stu[i].cj[0], stu[i].cj[1], stu[i].cj[2], (stu[i].cj[0]+stu[i].cj[1]+stu[i].cj[2])/3);
}
fclose(fp);

以上就是一个完整的解决方案了。希望对你有所帮助!