public static void Main()
int dataPoint, data, count = 1, max = 0;
double mean, median, total = 0, sd, sdNumerator = 0;
Console.Write("Enter number of data points: ");
bool correct = Int32.TryParse(Console.ReadLine(), out dataPoint);
if (correct && dataPoint > 0)
Console.WriteLine("Invalid input! Please enter a whole number greater than 0.\n");
int[] dataArray = new int[dataPoint];
for (int i = 0; i < dataPoint; i++)
Console.Write("Enter data #{0}: ", i+1);
bool correct = Int32.TryParse(Console.ReadLine(), out data);
Console.WriteLine("Invalid input! Please enter a whole number for data input.\n");
mean = total / dataPoint;
double middle = dataArray[dataPoint/2] + dataArray[(dataPoint/2)-1];
median = dataArray[(dataPoint-1)/2];
int[] mode = new int[dataPoint];
int[] dataCount = new int[dataPoint];
for (int i = 0; i < dataPoint; i++)
for (int j = 0; j < dataPoint; j++)
if (dataArray[i] == dataArray[j])
foreach (int i in dataCount)
for (int i = 0; i < dataPoint; i++)
mode[index] = dataArray[i];
for (int j = 0; j < index; j++)
if (dataArray[i] == mode[j])
mode[index] = dataArray[i];
foreach (int i in dataArray)
sdNumerator += (Convert.ToDouble(i) - mean) * (Convert.ToDouble(i) - mean);
sd = Math.Sqrt(sdNumerator / (dataPoint - 1));
Console.Write("\n========= Statistical Information =========\nArithmetic mean : {0}\nMedian : {1}", mean, median);
Console.Write("\nMode : ");
Console.Write("{0},", mode[index]);
Console.Write("\nStandard Deviation: {0:0.00000}", sd);