求各科成绩和总分,将数据存放磁盘文件

有没有人帮我看一下为什么会输出错误
[问题描述]有3个学生,每个学生有2门课成绩,定义结构体类型,编程:从键盘输入数据(包括学号、姓名和2门课成绩) , 计算出每个学生的总分,将原有数据和计算出的总分存放在磁盘文件student中。[输入弑]依次输入学生号、姓名、2门课成绩,之间用空格隔开(学生号、姓名均不超过20字节),成绩为float型。

[输出形式]每行输出一位学生信息,信息包括学生号、姓名、2门课成绩、总纷,之间用空格隔开。

[样例输入] .

001张三80.590 .

002李四65 90.5
003王五100 50
[样例输出]无



#include<stdio.h>
#include<stdlib.h>
#define N 3
struct student
{    char no[20];
    char name[20];
    float mark[2];
    float allMark;
};
struct student st[N];
int main(void)
{
    FILE* fp;
    int i, k;
    if ((fp = fopen("stud", "wb")) == NULL)
    {
        printf("Cannot open this file.\n");
        exit(0);
    }
    for (i = 0; i < N; i++)
    {
        scanf("%s%s", st[i].no, st[i].name);

        scanf("%f%f", &st[i].mark[0], &st[i].mark[1]);
        st[i].allMark = st[i].mark[0] + st[i].mark[1];
        fwrite(&st[i], sizeof(struct student), 1, fp);
    }
    fclose(fp);

    if ((fp = fopen("stud", "rb")) == NULL)
    {
        printf("Cannot open this file.\n");
        exit(0);
    }
    for (i = 0; i < N; i++)
        fread(&st[i], sizeof(struct student), 1, fp);
    for (i = 0; i < N; i++)
    {
        printf("%s %s", st[i].no, st[i].name);
        for (k = 0; k < 2; k++)
            printf("%6.1f", st[i].mark[k]);
        printf("%10.1f\n", st[i].allMark);
    }
    fclose(fp);
    return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/68631984917616.png "#left")

img

提问能不能把错误信息也贴一下

什么错误呀?

能把报错的页面截屏吗?