回 帖 发 新 帖 刷新版面

主题:【大虾求助】文本操作类问题

最近刚学到文本操作~~
拜请各位大虾帮忙指导下小题:[em8]
               
        [size=5]给定n数,2<n<20,计算大小居中的(n-2)个数的平均值。
  
        数据输入:文件input.txt的第一行是n,第二行是n个实数
        结果输出:把计算的结果写到文件output.txt中。[/size]
   
         输入文件示例:
          4
          1 2 3 4
          输出文件示例:
          2.5000
         
          谢谢哦。

回复列表 (共3个回复)

沙发

读入n
读入n个数,放在数组中
求和、最大值、最小值
(和-最大值-最小值)除以(n-2)
输出结果
以上

板凳

代码不够简洁,仅能完成任务。可以看一下:
#include <stdio.h>
#include <stdlib.h>

int main()
{

    FILE *fp_in,*fp_out;
    int m,sum=0,n,i=1;
    float ave=0;

    if((fp_in=fopen("e:\\input.txt","r"))==NULL)          //打开要读取数据的文件
    {
        printf("can't open input file.");
        exit(1);
    }

    if((fp_out=fopen("e:\\output.txt","w+"))==NULL)       //打开要输入数据的文件
    {
        printf("can't open output file.");
        exit(1);
    }


    fscanf(fp_in,"%d\n",&n);                              //读取第一行的数据并赋值给n

    while(i<n)                                             //读取前n个数据,这里是“n==3"
    {
        if(i>=2)                           //若数据是从第二个开始,使他们相加,否则仅读取
        {
            fscanf(fp_in,"%d ",&m);
            sum+=m;
        }
        else
            fscanf(fp_in,"%d ",&m);

        i++;                                               //i用来控制读取数据个数的限制

    }

    ave=sum/(float)(n-2);                                  //求平均数

    fprintf(fp_out,"%.4f",ave);                     //将平均数输入到文件output.txt文件中

    fclose(fp_in);                                          //关闭文件
    fclose(fp_out);

    return 0;

}

3 楼

谢谢各位大虾。

我来回复

您尚未登录,请登录后再回复。点此登录或注册