PLEASE WRITE IT IN C PROGRAM NOT C Modify the program writte

PLEASE WRITE IT IN C PROGRAM, NOT C++

Modify the program written in question 1 to use a single function to compute all three averages.
In more detail, write the program, permeability1function.c, whose main carries out the
following steps:
• open the two files samplesin.txt and samples1out.txt.
• read the values from samplesin.txt into the array x and determine the value of n (number
of values in the file).
• call the function averages which computes the arithmetic, geometric and harmonic
averges.

• write the three averages to the file samples1out.txt.

the Code I wrote for the question 1 is :

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//static Memory Allocation
#define MAXN 100
//function define
float func_arithAve(float x[], int i);

float func_geomeAve(float x[], int i);

float func_harmoAve(float x[], int i);

int main(void){
    //Declare variables
    float x[MAXN], arithAve, geomeAve, harmoAve;
    int i;
  
    FILE * fin = fopen(\"samplesin.txt\",\"r\");
    FILE * fp = fopen(\"samplesout.txt\",\"w\");
  
    i = 0;
    while (fscanf(fin, \"%f\", &x[i])!=EOF){
          i++;         //this counter tracks the number of values in the array
          }
    //3 functions now
    arithAve = func_arithAve(x, i);
    geomeAve = func_geomeAve(x, i);
    harmoAve = func_harmoAve(x, i);
  
    //output
    fprintf(fp, \"the arithmetic average = %f\ \", arithAve);
    fprintf(fp,\"the geometric average = %f\ \", geomeAve);
    fprintf(fp,\"the harmonic average = %f\ \", harmoAve);
  
    fclose(fin);
    fclose(fp);  
   system(\"notepad samplesout.txt\");  
    return 0;
    }
  
    //define functions


float func_arithAve(float x[], int i){
   int a;// use a local counter that works its way up to q-1
   float b=0.0;
   // Note use FOR loops for the sums
   for (a=0; a<=(i-1);a++){
       // equations are on the assignment sheet
       b = b + x[a];
   }
   b = b/((float)i);
       // return the average values
   return b;
}

float func_geomeAve(float x[], int i){
      int a;
      float c=0.0;
    
      for(a=0; a<=(i-1); a++){
               c = c + log(x[a]);
               }
      c = c/((float)i);
      c = exp(c) ;
    
      return c;
      }
float func_harmoAve(float x[], int i){
      int a;
      float d=0.0;
    
      for(a=0; a<=(i-1);a++){
               d = d + (1/x[a]);
               }
      d = ((float)i/d);
    
      return d;
      }

Solution

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//static Memory Allocation
#define MAXN 100
//function define
float func_arithAve(float x[], int i);

float func_geomeAve(float x[], int i);

float func_harmoAve(float x[], int i);

int main(void){
    //Declare variables
    float x[MAXN], arithAve, geomeAve, harmoAve;
    int i;
  
    FILE * fin = fopen(\"samplesin.txt\",\"r\");
    FILE * fp = fopen(\"samplesout.txt\",\"w\");
  
    i = 0;
    while (fscanf(fin, \"%f\", &x[i])!=EOF){
          i++;         //this counter tracks the number of values in the array
          }
    //3 functions now
    arithAve = func_arithAve(x, i);
    geomeAve = func_geomeAve(x, i);
    harmoAve = func_harmoAve(x, i);
  
    //output
    fprintf(fp, \"the arithmetic average = %f\ \", arithAve);
    fprintf(fp,\"the geometric average = %f\ \", geomeAve);
    fprintf(fp,\"the harmonic average = %f\ \", harmoAve);
  
    fclose(fin);
    fclose(fp);  
   system(\"notepad samplesout.txt\");  
    return 0;
    }
  
    //define functions


float func_arithAve(float x[], int i){
   int a;// use a local counter that works its way up to q-1
   float b=0.0;
   // Note use FOR loops for the sums
   for (a=0; a<=(i-1);a++){
       // equations are on the assignment sheet
       b = b + x[a];
   }
   b = b/((float)i);
       // return the average values
   return b;
}

float func_geomeAve(float x[], int i){
      int a;
      float c=0.0;
    
      for(a=0; a<=(i-1); a++){
               c = c + log(x[a]);
               }
      c = c/((float)i);
      c = exp(c) ;
    
      return c;
      }
float func_harmoAve(float x[], int i){
      int a;
      float d=0.0;
    
      for(a=0; a<=(i-1);a++){
               d = d + (1/x[a]);
               }
      d = ((float)i/d);
    
      return d;
      }

PLEASE WRITE IT IN C PROGRAM, NOT C++ Modify the program written in question 1 to use a single function to compute all three averages. In more detail, write the
PLEASE WRITE IT IN C PROGRAM, NOT C++ Modify the program written in question 1 to use a single function to compute all three averages. In more detail, write the
PLEASE WRITE IT IN C PROGRAM, NOT C++ Modify the program written in question 1 to use a single function to compute all three averages. In more detail, write the

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site