Description: This problem requires a program that takes a list of numbers as input and calculates three statistical measures: average (mean), median, and mode. The average is calculated by summing all numbers in the list and dividing by the number of elements. The median is the middle number when the list is sorted (or the average of the two middle numbers if the list has an even number of elements). The mode is the number that appears most frequently in the list. If no number repeats, there may not be a mode.
// Input: A list of numbers
procedure CalculateStatistics(numbers)
sum ← 0
for i ← 0 to length(numbers) - 1
sum ← sum + numbers[i]
end for
// Calculate Average
average ← sum / length(numbers)
// Sort the numbers for median and mode
sortedNumbers ← sort(numbers)
// Calculate Median
if length(sortedNumbers) mod 2 == 0 then
median ← (sortedNumbers[length(sortedNumbers) / 2 - 1] + sortedNumbers[length(sortedNumbers) / 2]) / 2
else
median ← sortedNumbers[length(sortedNumbers) / 2]
end if
// Calculate Mode
mode ← sortedNumbers[0]
maxCount ← 0
count ← 1
for i ← 1 to length(sortedNumbers) - 1
if sortedNumbers[i] == sortedNumbers[i - 1] then
count ← count + 1
else
if count > maxCount then
maxCount ← count
mode ← sortedNumbers[i - 1]
end if
count ← 1
end if
end for
if count > maxCount then
mode ← sortedNumbers[length(sortedNumbers) - 1]
end if
print "Average: " + average
print "Median: " + median
print "Mode: " + mode
end procedure
def calculate_statistics(numbers):
numbers.sort()
# Calculate Average
average = sum(numbers) / len(numbers)
# Calculate Median
mid = len(numbers) // 2
if len(numbers) % 2 == 0:
median = (numbers[mid - 1] + numbers[mid]) / 2
else:
median = numbers[mid]
# Calculate Mode
from collections import Counter
count = Counter(numbers)
mode = count.most_common(1)[0][0]
print(f"Average: {average}")
print(f"Median: {median}")
print(f"Mode: {mode}")
# Example usage
numbers = [1, 2, 2, 3, 4]
calculate_statistics(numbers)
import java.util.*;
public class StatisticsCalculator {
public static void calculateStatistics(int[] numbers) {
Arrays.sort(numbers);
// Calculate Average
double sum = 0;
for (int num : numbers) {
sum += num;
}
double average = sum / numbers.length;
// Calculate Median
double median;
int mid = numbers.length / 2;
if (numbers.length % 2 == 0) {
median = (numbers[mid - 1] + numbers[mid]) / 2.0;
} else {
median = numbers[mid];
}
// Calculate Mode
Map<Integer, Integer> frequencyMap = new HashMap<>();
for (int num : numbers) {
frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
}
int mode = numbers[0];
int maxCount = 0;
for (int key : frequencyMap.keySet()) {
if (frequencyMap.get(key) > maxCount) {
maxCount = frequencyMap.get(key);
mode = key;
}
}
System.out.println("Average: " + average);
System.out.println("Median: " + median);
System.out.println("Mode: " + mode);
}
public static void main(String[] args) {
int[] numbers = {1, 2, 2, 3, 4};
calculateStatistics(numbers);
}
}
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
void calculateStatistics(vector<int> &numbers) {
sort(numbers.begin(), numbers.end());
// Calculate Average
double sum = 0;
for (int num : numbers) {
sum += num;
}
double average = sum / numbers.size();
// Calculate Median
double median;
int mid = numbers.size() / 2;
if (numbers.size() % 2 == 0) {
median = (numbers[mid - 1] + numbers[mid]) / 2.0;
} else {
median = numbers[mid];
}
// Calculate Mode
map<int, int> frequencyMap;
for (int num : numbers) {
frequencyMap[num]++;
}
int mode = numbers[0];
int maxCount = 0;
for (auto pair : frequencyMap) {
if (pair.second > maxCount) {
maxCount = pair.second;
mode = pair.first;
}
}
cout << "Average: " << average << endl;
cout << "Median: " << median << endl;
cout << "Mode: " << mode << endl;
}
int main() {
vector<int> numbers = {1, 2, 2, 3, 4};
calculateStatistics(numbers);
return 0;
}