#include <stdio.h>
#define SIZE 99
void mean(const int answer[]);
void median(int answer[]);
void mode(int freq[], const int answer[]);
void bubbleSort(int a[]);
void printArray(const int a[]);
int main(void) {
int frequency[10] = {0};
int response[SIZE] = {
6, 7, 8, 9, 8, 7, 8, 9, 8, 9,
7, 8, 9, 5, 9, 8, 7, 8, 7, 8,
6, 7, 8, 9, 3, 9, 8, 7, 8, 7,
7, 8, 9, 8, 9, 8, 9, 7, 8, 9,
6, 7, 8, 7, 8, 7, 9, 8, 9, 2,
7, 8, 9, 8, 9, 8, 9, 7, 5, 3,
5, 6, 7, 2, 5, 3, 9, 4, 6, 4,
7, 8, 9, 6, 8, 7, 8, 9, 7, 8,
7, 4, 4, 2, 5, 3, 8, 7, 5, 6,
4, 5, 6, 1, 6, 5, 7, 8, 7
};
mean(response);
median(response);
mode(frequency, response);
return 0;
}
void mean(const int answer[]) {
int total = 0;
for (size_t j = 0; j < SIZE; ++j) {
total += answer[j];
}
printf("Mean: %.4f\n", (double) total
/ SIZE
); }
void median(int answer[]) {
bubbleSort(answer);
if (SIZE % 2 == 0) {
double med = (answer[SIZE / 2 - 1] + answer[SIZE / 2]) / 2.0;
printf("Median: %.1f\n", med
); } else {
printf("Median: %d\n", answer
[SIZE
/ 2]); }
}
void mode(int freq[], const int answer[]) {
for (size_t rating = 1; rating <= 9; ++rating) {
freq[rating] = 0;
}
for (size_t j = 0; j < SIZE; ++j) {
++freq[answer[j]];
}
int largest = 0;
for (size_t rating = 1; rating <= 9; ++rating) {
if (freq[rating] > largest) {
largest = freq[rating];
}
}
printf("Mode(s) appearing %d times: ", largest
); for (size_t rating = 1; rating <= 9; ++rating) {
if (freq[rating] == largest) {
}
}
}
void bubbleSort(int a[]) {
for (int pass = 1; pass < SIZE; ++pass) {
for (size_t j = 0; j < SIZE - 1; ++j) {
if (a[j] > a[j + 1]) {
int hold = a[j];
a[j] = a[j + 1];
a[j + 1] = hold;
}
}
}
}
void printArray(const int a[]) {
for (size_t j = 0; j < SIZE; ++j) {
if (j % 20 == 0) {
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSA5OQoKdm9pZCBtZWFuKGNvbnN0IGludCBhbnN3ZXJbXSk7CnZvaWQgbWVkaWFuKGludCBhbnN3ZXJbXSk7CnZvaWQgbW9kZShpbnQgZnJlcVtdLCBjb25zdCBpbnQgYW5zd2VyW10pOwp2b2lkIGJ1YmJsZVNvcnQoaW50IGFbXSk7CnZvaWQgcHJpbnRBcnJheShjb25zdCBpbnQgYVtdKTsKCmludCBtYWluKHZvaWQpIHsKICAgIGludCBmcmVxdWVuY3lbMTBdID0gezB9OwogICAgaW50IHJlc3BvbnNlW1NJWkVdID0gewogICAgICAgIDYsIDcsIDgsIDksIDgsIDcsIDgsIDksIDgsIDksCiAgICAgICAgNywgOCwgOSwgNSwgOSwgOCwgNywgOCwgNywgOCwKICAgICAgICA2LCA3LCA4LCA5LCAzLCA5LCA4LCA3LCA4LCA3LAogICAgICAgIDcsIDgsIDksIDgsIDksIDgsIDksIDcsIDgsIDksCiAgICAgICAgNiwgNywgOCwgNywgOCwgNywgOSwgOCwgOSwgMiwKICAgICAgICA3LCA4LCA5LCA4LCA5LCA4LCA5LCA3LCA1LCAzLAogICAgICAgIDUsIDYsIDcsIDIsIDUsIDMsIDksIDQsIDYsIDQsCiAgICAgICAgNywgOCwgOSwgNiwgOCwgNywgOCwgOSwgNywgOCwKICAgICAgICA3LCA0LCA0LCAyLCA1LCAzLCA4LCA3LCA1LCA2LAogICAgICAgIDQsIDUsIDYsIDEsIDYsIDUsIDcsIDgsIDcKICAgIH07CgogICAgbWVhbihyZXNwb25zZSk7CiAgICBtZWRpYW4ocmVzcG9uc2UpOwogICAgbW9kZShmcmVxdWVuY3ksIHJlc3BvbnNlKTsKICAgIAogICAgcmV0dXJuIDA7Cn0KCnZvaWQgbWVhbihjb25zdCBpbnQgYW5zd2VyW10pIHsKICAgIGludCB0b3RhbCA9IDA7CiAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IFNJWkU7ICsraikgewogICAgICAgIHRvdGFsICs9IGFuc3dlcltqXTsKICAgIH0KICAgIHByaW50ZigiTWVhbjogJS40ZlxuIiwgKGRvdWJsZSkgdG90YWwgLyBTSVpFKTsKfQoKdm9pZCBtZWRpYW4oaW50IGFuc3dlcltdKSB7CiAgICBidWJibGVTb3J0KGFuc3dlcik7CiAgICBpZiAoU0laRSAlIDIgPT0gMCkgewogICAgICAgIGRvdWJsZSBtZWQgPSAoYW5zd2VyW1NJWkUgLyAyIC0gMV0gKyBhbnN3ZXJbU0laRSAvIDJdKSAvIDIuMDsKICAgICAgICBwcmludGYoIk1lZGlhbjogJS4xZlxuIiwgbWVkKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCJNZWRpYW46ICVkXG4iLCBhbnN3ZXJbU0laRSAvIDJdKTsKICAgIH0KfQoKdm9pZCBtb2RlKGludCBmcmVxW10sIGNvbnN0IGludCBhbnN3ZXJbXSkgewogICAgZm9yIChzaXplX3QgcmF0aW5nID0gMTsgcmF0aW5nIDw9IDk7ICsrcmF0aW5nKSB7CiAgICAgICAgZnJlcVtyYXRpbmddID0gMDsKICAgIH0KICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgU0laRTsgKytqKSB7CiAgICAgICAgKytmcmVxW2Fuc3dlcltqXV07CiAgICB9CiAgICAKICAgIGludCBsYXJnZXN0ID0gMDsKICAgIGZvciAoc2l6ZV90IHJhdGluZyA9IDE7IHJhdGluZyA8PSA5OyArK3JhdGluZykgewogICAgICAgIGlmIChmcmVxW3JhdGluZ10gPiBsYXJnZXN0KSB7CiAgICAgICAgICAgIGxhcmdlc3QgPSBmcmVxW3JhdGluZ107CiAgICAgICAgfQogICAgfQogICAgCiAgICBwcmludGYoIk1vZGUocykgYXBwZWFyaW5nICVkIHRpbWVzOiAiLCBsYXJnZXN0KTsKICAgIGZvciAoc2l6ZV90IHJhdGluZyA9IDE7IHJhdGluZyA8PSA5OyArK3JhdGluZykgewogICAgICAgIGlmIChmcmVxW3JhdGluZ10gPT0gbGFyZ2VzdCkgewogICAgICAgICAgICBwcmludGYoIiV6dSAiLCByYXRpbmcpOwogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiXG4iKTsKfQoKdm9pZCBidWJibGVTb3J0KGludCBhW10pIHsKICAgIGZvciAoaW50IHBhc3MgPSAxOyBwYXNzIDwgU0laRTsgKytwYXNzKSB7CiAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBTSVpFIC0gMTsgKytqKSB7CiAgICAgICAgICAgIGlmIChhW2pdID4gYVtqICsgMV0pIHsKICAgICAgICAgICAgICAgIGludCBob2xkID0gYVtqXTsKICAgICAgICAgICAgICAgIGFbal0gPSBhW2ogKyAxXTsKICAgICAgICAgICAgICAgIGFbaiArIDFdID0gaG9sZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBwcmludEFycmF5KGNvbnN0IGludCBhW10pIHsKICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgU0laRTsgKytqKSB7CiAgICAgICAgaWYgKGogJSAyMCA9PSAwKSB7CiAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlMmQiLCBhW2pdKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKfQ==