Другие языки программирования и технологии

1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч

Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные числа в диапазоне 160 - 180). Написать функцию подсчета среднего роста без максимального и минимального значений и функцию, выводящую первоначальный и результирующий массив в течении выполнения программы (до сортировки и после сортировки).
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <math.h>
#include <limits.h>
#include <conio.h>
#define N 20
void show_array(int *, int);
int medium_height(int *, int);
int compare(const void *, const void *);
int main() {
int a[N], n, mh;
srand((unsigned)time(NULL));
for (n = 0; n < N; n++) a[n] = rand() % 21 + 160;
show_array(a, N);
qsort(a, N, sizeof(int), compare);
show_array(a, N);
mh = medium_height(a, N);
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf("Средний рост = %d", mh);
_getch();
return 0;
}
void show_array(int * arr, int size) {
int n;
for (n = 0; n < size; n++) printf("%d ", arr[n]);
printf("\n");
}
int medium_height(int * arr, int size) {
int n, max, min = INT_MAX, summa, count;
n = max = summa = count = 0;
float mh = 0;
for (n; n < size; n++) {
if (max < arr[n]) max = arr[n];
if (min > arr[n]) min = arr[n];
}
for (n = 0; n < size; n++) {
if (arr[n] != max || arr[n] != min) {
count++;
summa += arr[n];
}
}
if (count) {
mh = (float)summa / count;
mh = floor(mh + .5f);
}
return (int)mh;
}
int compare(const void * a, const void * b) {
return (*(int *)a - *(int *)b);
}
@ulushka @
@ulushka @
78 753
Лучший ответ
и сейчас мы угадаем на каком языке программирования оно тебе нужно.. . :)

Похожие вопросы