通过命令行参数的方式,写入数据,并计算输入的数值平均值。

创建文件,写入数值,假设输入完全是浮点数,程序需要计算并报告平均值。

通过strtod()函数,将输入的数值型的字符串转为数值。

# include<stdio.h>
# include<stdlib.h>
# define SIZE 10
# define LIM  10

int main(int argc,char*argv[])
{
    FILE*fp;
    char*end;
    double num[SIZE];
    double sum = 0;
    int count = 0;
    int i = 0;
    
    if(argc<2) //输入字符串数量不足
    {
    fprintf(stderr,"Usage:%s filename",argv[0]);
    exit(EXIT_FAILURE);
    }
    if((fp = fopen(argv[1],"w+"))==NULL) //以w+模式 或者 w模式打开均可
    {
       fprintf(stderr,"Can't open file %s",argv[1]);
       exit(EXIT_FAILURE);
    }
    for( i = 0; i < (argc-2);i++)
    {
       num[i]=strtod(argv[2+i],&end); //将字符串转为数值,并给数组赋值
       fprintf(fp,"%s ",argv[2+i]);  //将字符串写入文件
       sum +=num[i];
       count++;
    }
    double avg = sum/count;
    printf("The avg is %.4f",avg);
    num[i] = avg; //将结果也一并写入文件
    fprintf(fp,"\n avg is %.4f",num[i]);
fclose(fp);
    
    return 0;
}

 

posted @ 2022-01-28 13:58  Tolerieren  阅读(200)  评论(0)    收藏  举报