结构体变量的初始化,运用

1)定义一个结构体类型stud (int id, char name[20], char banj[30], char sex, float scorel,float score2, float total)
2)定义 个结构体数组s[5],并初始化前2个人的数据,从键盘输入3个人的数据。
3)将这5个人的数据写入到文件a.txt中
4)从a.txt中读出数据,存放在s[5]中,用循环实现5个人数据的计算并屏幕输出。

for循环录入剩余3个学生数据后,用fopen打开文件,用fprintf逐个写入文件就是了。
读取文件用fscanf函数读取就可以了
参考如下:

#include <stdio.h>

struct stud 
{
    int id;
    char name[20];
    char banj[30];
    char sex;
    float scorel;
    float score2;
    float total;
};

int main()
{
    struct stud s[5]={ {111,"张三","一班",'M',70,80,150},{112,"李四","二班",'M',70,80,150} }; 
    int i;
    FILE* fp;
    printf("请输入3个学生的信息:\n");
    for(i=0;i<3;i++)
    {
        printf("请输入学号:");
        scanf("%d",&s[i+2].id); getchar(); //接收回车符
        printf("请输入姓名:");
        scanf("%s",s[i+2].name); getchar(); //接收回车符
        printf("请输入班级:");
        scanf("%s",s[i+2].banj); getchar(); //接收回车符
        printf("请输入性别(F/M):"); 
        s[i+2].sex = getchar();
        printf("请输入成绩1:");
        scanf("%f",&s[i+2].scorel);
        printf("请输入成绩2:");
        scanf("%f",&s[i+2].score2);
        s[i+2].total = s[i+2].scorel + s[i+2].score2;
    }
    if ((fp=fopen("a.txt","w")) == 0)
    {
        printf("文件打开失败\n");
        return 0;
    }
    //写入文件
    for (i=0;i<5;i++)
    {
        fprintf(fp,"%d %s %s %c %f %f %f\n",s[i].id,s[i].name,s[i].banj,s[i].sex,s[i].scorel,s[i].score2,s[i].total);
    }
    fclose(fp);
    //读取文件并显示
    if((fp=fopen("a.txt","r"))==0)
    {
        printf("文件打开失败\n");
        return 0;
    }
    i = 0;
    while (!feof(fp))
    {
        fscanf(fp,"%d %s %s %c %f %f %f\n",&s[i].id,s[i].name,s[i].banj,&s[i].sex,&s[i].scorel,&s[i].score2,&s[i].total);
        if(s[i].id > 0)//避免读入空行
        {
            
            printf("%d %s %s %c %f %f %f\n",s[i].id,s[i].name,s[i].banj,s[i].sex,s[i].scorel,s[i].score2,s[i].total);
            i++;
        }
        
    }
    fclose(fp);
    return 0;
}


哪部分有困难?