I keep getting the error: "invalid types'double[double]' for array subscript. It errors on line 105 and 111 twice. I have tried switching up various double and ints that are in the array, to no avail. I am using Dev C++ and MS Visual C++.
Code:
//AS-31
#include <iostream>
#include <string>
using namespace std;
double computemin ( double sortedData [], int length );
double computemax ( double sortedData [ ], int length );
double computemean ( double sortedData [ ], int length );
double computemedian ( double sortedData [ ], int length);
int main ()
{
double data [20],sdata[20];
int length,i;
double min,max,mean,median,sum,temp;
bool swapped;
//input data into array
cout <<"Enter data size: "<<endl;
cin >>length;
for (i=0; i<length;i++)
{
cout <<"Enter a data item: ";
cin >>data[i];
}
cout <<endl;
//copy the contents of data into sdata
for (i=0; i<length;i++)
{
sdata[i] = data[i];
}
//sort array sdata
swapped=true;
while (swapped)
{
swapped=false;
for (i=0;i<length-1;i++)
{
if (sdata[i] > sdata[i+1])
{
//swap
temp=sdata[i];
sdata[i] = sdata [i+1];
sdata [i+1] = temp;
swapped=true;
}
}
}
//display original data
cout <<"Original data: "<<endl;
for (i=0; i<length;i++)
{
cout <<data[i] << " ";
}
cout <<endl;
//display sorted data
cout <<"Sorted data: "<<endl;
for (i=0; i<length;i++)
{
cout <<sdata[i] << " ";
}
computemin (sdata,length);
computemax (sdata,length);
computemean (sdata,length);
computemedian (sdata,length);
system ("PAUSE");
}
double computemin ( double sortedData [], int length )
{
double min=sortedData[0];
cout <<"Min: "<<min<<endl;
return 1;
}
double computemax ( double sortedData [ ], int length )
{
double max=sortedData[length-1];
cout <<"Max: "<<max<<endl;
return 1;
}
double computemean ( double sortedData [ ], int length )
{
double sum=0;
for (int i=0; i<length;i++)
{
sum=sum+sortedData[i];
}
double mean=sum/length;
cout <<"Mean: "<<mean<<endl;
return 1;
}
double computemedian ( double sortedData [ ], int length)
{
double indexHi,indexLo,index,median,sdata;
if ((length %2) != 0 )
{
index = length / 2;
median = sdata [index];
}
else
{
indexHi = length / 2;
indexLo = indexHi -1;
median = (sdata[indexLo] + sdata[indexHi] ) / 2;
}
cout <<"Median: "<<median<<endl;
return 1;
}