C语言小白请教!软件:vs 2010版本

最近刚刚接触C语言用的是vs,然后遇到这样一个问题,希望大佬帮帮忙!
先看原题:
已知有结构体类型student包含3个成员:name(姓名)、score(3科成绩数组)、ave平均成绩。编写程序,要求主函数从外部文件in.txt中读出3行数据,分别赋值给结构体数组变量s的s[0]到s[2]中;调用fun函数求出每个人3个成绩的平均值,并赋值给该变量的ave成员;最后由主函数输出3个人的姓名、3科成绩及平均成绩(保留2位小数)。
结构体定义如下:
struct student
{
char name[20]; //姓名
int score[3]; //成绩
float ave; //平均值
}s[3];
外部文件in.txt内容如下:
Li 91 82 75
Wang 73 67 62
Zhang 83 95 97
这个平均值要怎么算才能按照题目的要求输出呢?就是这一段程序在vs里面要怎么写,谢谢各位大佬!

vs2022完美运行,注意要将in.txt文件放在所在项目目录下。
计算平均值时使用结构体数组名作函数参数,n表示人数,分别对每位同学的三门成绩求和,然后再除以3得到平均值,再将平均值保存到结构体成员ave中。

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
struct student
{
    char name[20]; //姓名
    int score[3]; //成绩
    float ave; //平均值
}s[3];
void fun(struct student s[], int n)
{
    float sum;
    for (int i = 0; i < n; i++) 
    {
        sum = 0;
        for (int j = 0;j < 3;j++)
            sum = sum + s[i].score[j];
        s[i].ave = sum / 3.0;
    }
}
int main()
{
    FILE* fp = fopen("in.txt", "r");
    if (fp == NULL) {
        printf("Open failed!\n");
        return -1;
    }
    for (int i = 0; i < 3; i++) {
        fscanf(fp, "%s %d %d %d\n", s[i].name, &s[i].score[0], &s[i].score[1], &s[i].score[2]);
    }
    fclose(fp);
    fun(s, 3);
    printf("姓名\t语文\t数学\t英语\t平均分\n");
    for (int i = 0; i < 3; i++) {
        printf("%s\t%.d\t%.d\t%.d\t%.2f\n", s[i].name, s[i].score[0], s[i].score[1], s[i].score[2], s[i].ave);
    }
    return 0;
}

img

img


#include <stdio.h>

struct student
{
    char name[20]; //姓名
    int score[3]; //成绩
    float ave; //平均值
};

void fun(struct student stu[], int n)
{
    for(int i=0; i<n; i++) {
        stu[i].ave = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0;
    }
}

int main()
{
    struct student stu[3];
    FILE *fp = fopen("in.txt", "r");
    if(fp == NULL) {
        printf("文件打开失败!\n");
        return -1;
    }
    for(int i=0; i<3; i++) {
        fscanf(fp, "%s %d %d %d\n", stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
    }
    fclose(fp);
    fun(stu, 3);
    printf("姓名\t语文\t数学\t英语\t平均分\n");
    for(int i=0; i<3; i++) {
        printf("%s\t%d\t%d\t%d\t%.2f\n", stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].ave);
    }
    return 0;
}