Modify the C program to load an external file into an array and save the results
ID: 645866 • Letter: M
Question
Modify the C program to load an external file into an array and save the results to a separate external file.
Program is:
#include
#include
double mean(double* ,int);
double standardd(double* ,int);
double calc(double *, int);
int main()
{
double average,sd,var;
double H[400] = {1.8, 4.3, 15.6, 0.2, 10.7, 1.2, 0.9, 5.0, 4.6, 6.8,
4.6, 0.7, 5.2, 5.5, 4.5, 5.5, 3.8, 6.8, 5.0, 1.2, 2.0, 1.1,
5.0, 3.3, 2.1, 10.9, 1.4, 1.3, 0.1, 5.0, 2.6, 1.5, 10.3, 23.9,
1.3, 1.8, 1.8, 7.1, 3.6, 9.5, 9.2, 16.1, 15.0, 0.7, 10.0, 5.9,
1.6, 2.8, 2.7, 0.8, 0.2, 6.5, 7.4, 5.2, 0.6, 2.7, 14.8, 6.8, 9.8,
14.9, 5.1,0.9, 1.3, 4.2, 3.5, 2.2, 1.2, 6.8, 9.0, 8.9, 5.7, 11.5,
1.6, 13.2, 1.1, 3.3, 4.7, 9.9, 1.5, 9.3, 2.6, 8.5, 13.0,
8.2, 1.5, 6.0, 18.4, 1.6, 0.6, 9.1, 12.9, 7.4, 0.2, 1.1, 1.1, 1.4,
12.2, 0.3, 8.4, 11.1, 11.5, 3.2, 1.9, 0.1, 1.2,7.6, 7.1, 3.5, 6.7,
1.5,
16.5, 1.1, 3.7, 5.7, 7.5, 13.0, 4.5, 10.9, 4.3, 3.8, 2.7, 0.6,
2.4,
7.4, 2.8, 6.2, 1.7, 3.8, 1.6, 2.4, 11.9, 6.4, 4.4, 1.3, 2.8, 0.2,
11.7, 3.9, 2.0, 5.0, 2.9, 11.9, 0.2, 0.2, 5.7, 1.3, 3.7, 1.5,
0.9, 5.6, 2.6, 5.2, 1.2, 4.6, 3.3, 1.6, 10.9,
0.3, 2.3, 1.1, 1.8, 5.5, 6.2, 6.0, 6.4, 2.0, 8.8, 1.7, 5.3,
0.2, 3.2, 13.9, 4.0, 5.8, 6.7, 0.5, 0.8, 6.8,1.6, 1.9, 1.1, 6.3,
2.0, 0.4, 5.7, 11.2, 1.6, 1.0, 4.5, 3.5, 4.0, 2.7, 4.2, 28.5,
21.2, 4.5, 13.6, 5.5, 3.6, 1.5, 1.8, 0.6, 12.1, 2.7, 1.5,
13.5, 3.5, 2.1, 3.9, 5.3, 2.5,
4.0, 4.3, 5.4, 3.8, 2.0, 3.6, 3.8, 1.5, 4.0, 0.0, 2.9,
3.5, 0.4, 3.0, 3.8, 3.3, 0.6, 3.9, 2.1, 2.3,3.7, 3.3, 0.1,
1.8, 9.6, 9.2, 2.0, 6.4, 6.2, 7.0, 0.7, 3.4, 5.3, 2.0, 1.2,
0.2, 9.6, 8.7, 0.3, 4.4, 4.0, 3.2, 0.5, 0.7, 4.0, 3.5, 9.2,
2.2, 10.0, 0.4, 7.2, 12.4, 18.2, 6.1, 3.5, 5.5, 5.1, 3.0, 10.9,
2.3, 2.5, 3.6, 4.4, 0.7, 3.8, 0.1, 8.6, 5.4, 2.6, 9.2, 0.6, 2.0,
9.8,
7.3, 16.1, 5.2, 6.2, 7.0, 4.7, 1.1, 8.1, 22.6, 0.9, 4.2, 6.8,
0.9, 3.4, 2.8, 2.9, 9.2, 14.6, 7.6, 16.6, 2.5, 9.9, 0.2,
1.6, 2.3, 2.9, 5.2, 1.2, 1.9, 2.9, 6.8, 1.4, 6.1, 3.6, 3.6,
2.3, 12.3, 2.4, 5.3, 11.5, 14.9, 4.9, 1.6, 4.1, 4.9, 2.5,
3.9, 4.2, 8.7, 7.2, 4.6, 3.4, 1.1, 5.8, 1.8, 9.3,
3.7, 6.4, 18.1, 8.7, 4.5, 1.9, 3.1, 3.5, 0.6, 16.6,
9.5, 2.5, 7.9, 13.1, 6.7, 2.7, 1.8, 1.8, 2.6, 11.9,
8.2, 2.7, 5.2, 2.3, 8.6, 3.9, 0.9, 6.1, 3.9, 1.5,
0.7, 2.1, 0.2, 2.9, 0.9, 3.9, 6.4, 1.9, 6.1, 10.6,
11.4, 9.9, 4.3, 10.0, 5.5, 3.6, 3.0, 0.7, 2.4, 0.9,
3.3, 2.9, 9.2, 6.5, 3.8, 5.5, 3.1, 6.1, 2.9, 1.5};
average=mean(H,400);
var=standardd(H,400);
sd=calc(H,400);
printf("The average is %.2f ",average);
printf("The standard deviation is %.2f ",sd);
printf("The variance is %.2f ",var);
return 0;
}
double mean(double* H,int n)
{
int i;
double sum=0;
for(i=0;i sum= sum+*(H+i);
return sum/n;
}
double standardd(double *H,int n)
{
double me,sum=0;
int i;
me = mean(H,n);
for(i=0;i sum= sum+( *(H+i)-me)*( *(H+i)-me);
return sum/n;
}
double calc(double *H,int n){
return sqrt(standardd(H,n));
}
Explanation / Answer
#include<stdio.h>
#include<math.h>
double mean(double* ,int);
double standardd(double* ,int);
double calc(double *, int);
int main()
{
double average,sd,var;
double H[400];
int count = 0;
FILE* fp= fopen("input.txt","r");
FILE* foutp = fopen("output.txt","w");
if(!fp){
printf("unable to open file.exiting from program ");
return 0;
}
while(!feof(fp)){
if(count==400) break;
fscanf(fp,"%lf",&H[count++]);
}
fclose(fp);
average=mean(H,400);
var=standardd(H,400);
sd=calc(H,400);
fprintf(foutp,"The average is %.2f ",average);
fprintf(foutp,"The standard deviation is %.2f ",sd);
fprintf(foutp,"The variance is %.2f ",var);
fclose(foutp);
return 0;
}
double mean(double* H,int n)
{
int i;
double sum=0;
for(i=0;i<n; i++)
sum= sum+*(H+i);
return sum/n;
}
double standardd(double *H,int n)
{
double me,sum=0;
int i;
me = mean(H,n);
for(i=0;i<n; i++)
sum= sum+( *(H+i)-me)*( *(H+i)-me);
return sum/n;
}
double calc(double *H,int n){
return sqrt(standardd(H,n));
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.