Csdn_tyblll 2022-04-26 17:02 采纳率: 100%
浏览 125
已结题

如下程序是计算10名学生的平均分,修改为从文件cj. txt中读成绩进行计算。

#include<stdio.h>
#define N 10
float tj_avg(int a[]);
void main( )
{
int scores[N],i;
float avg_m;
freopen("cj.txt","r",stdin);
for (i=0;i<N;i++)
scanf("%lf",&index); //这里应该是需要修改的吧,怎么改呢
avg_m =tj_avg( scores);
printf("平均分为%.2f\n",avg_m);
}
float tj_avg(int a[])
{
float avg;int i,sum = 0;
for(i = 0;i<N;i++)
sum = sum+a[i];
avg = (float)sum/N;
return avg;
}

  • 写回答

3条回答 默认 最新

  • 关注

    代码如下:

    #include<stdio.h>
    #define N 10
    float tj_avg(int a[],int n);
    void main()
    {
        int scores[N], i;
        int n;
        float avg_m;
        FILE* fp = fopen("cj.txt", "r");
        if (fp == 0)
        {
            printf("文件打开错误");
            return ;
        }
        n = 0;
        while (!feof(fp))
        {
            if (fscanf(fp, "%d", &scores[n])) //成绩以空格分隔
            {
                if(scores[n] >= 0) //验证成功读取数据
                    n++;
            }
    
        }
        fclose(fp);
        avg_m = tj_avg(scores,n);
        printf("平均分为%.2f\n", avg_m);
    }
    float tj_avg(int a[],int n)
    {
        float avg; int i, sum = 0;
        for (i = 0; i < n; i++)
            sum = sum + a[i];
        avg = (float)sum / n;
        return avg;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月26日

悬赏问题

  • ¥20 关于php中URL传递GET全局变量的问题
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件