Code:
#include<stdio.h>
#include<math.h>
double mean(int marks[], int n);
double variance(int marks[], int n);
double stdDev(int marks[], int n);
double mode(int marks[], int n);
void sort(int marks[], int n);
int main(){
int n,i;
double t1, t2, t3, t4;
FILE *inFile;
inFile=fopen("marks.txt", "r");
if (inFile==NULL)
{
printf("File open error!\n");
return 0;
}
n=0;
int count[10000];
while((fscanf(inFile, "%d", &count[n]))==1) n++;
int marks[n];
for(i=0; i<n; i++) marks[i]=count[i];
printf("%d is the number of readings\n", n);
/*printf("testing marks array %d %d %d %d %d", marks[0], marks[1], marks[2], marks[812], marks[813]);*/
t1=mean(marks, n);
/*printf("testing marks array %d %d %d %d %d", marks[0], marks[1], marks[2], marks[812], marks[813]);*/
t2=variance(marks, n);
/*printf("testing marks array %d %d %d %d %d", marks[0], marks[1], marks[2], marks[812], marks[813]);*/
t3=stdDev(marks, n);
/*printf("testing marks array %d %d %d %d %d", marks[0], marks[1], marks[2], marks[812], marks[813]);*/
t4=mode(marks, n);
/*printf("testing marks array %d %d %d %d %d", marks[0], marks[1], marks[2], marks[812], marks[813]);*/
printf("%lf %d %lf %d, mean, variance, stdDev, mode", t1, t2, t3, t4);
fclose(inFile);
return 0;
}
double mean(int marks[], int n){
int i;
int sum=0;
for(i=0; i<n; i++) sum+=marks[i];
return (1.0*sum/n);
}
double variance(int marks[], int n){
int i;
double ave, varsum;
varsum=0;
printf("%d %d %d marks test\n", marks[0], marks[1], marks[813]);
ave=mean(marks, n);
printf("%d ave test\n", ave);
for (i=0; i<n; i++) varsum+=(marks[i]-ave)*(marks[i]-ave);
printf("%d varsum, %d variance test \n", varsum, varsum/n);
return (varsum/n);
}
double stdDev(int marks[], int n){
int i;
double var;
var=variance(marks, n);
return (sqrt(var));
}
double mode(int marks[], int n){
int i, count=0;
double mid;
mid=n/2.0;
sort(marks, n);
for(i=0; i<n; i++){
count=+marks[i];
if (count==mid) return ((marks[i]+marks[i+1])/2.0);
if (count>mid) return(marks[i]);}
return 0;
}
void sort(int marks[], int n){
int sorter[n];
sorter[0]=marks[0];
int i, temp;
for(i=1; i<n; i++){
if (marks[i]>=sorter[i]) sorter[i+1]=marks[i];
else {
temp=sorter[i];
sorter[i]=marks[i];
sorter[i+1]=temp;
}
}
for (i=0; i<n; i++) marks[i]=sorter[i];
return;}