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

Напишите всю программу. На С пожалуйста! Спасибо большое!!!

В массиве A[0..N-1] определить минимальное значение. Все числа, лежащие за минимальным записать в новый массив В, рассортировать его и определить в нем среднее арифметическое положительных чисел.
Рустик ?!?!?!?
Рустик ?!?!?!?
200
#include // stdio.h
#include // locale.h
#include // stdlib.h

int compare(const void* element1, const void* element2) { // Функция сравнения элементов
const int* first = (const int*)element1;
const int* second = (const int*)element2;
return *first - *second; // Элементы будут отсортированы по возрастанию
}

int main() {
setlocale(LC_ALL, "");
printf("Введите размер массива: ");
int n;
scanf("%d", &n);
int* a = (int*)malloc(sizeof(int) * n);
int minIdx = 0; // Индекс минимального элемента
printf("Введите массив A: ");

for (int i = 0; i < n; i++) { // Считываем элементы и ищем минимум
scanf("%d", a + i);
if (a[i] < a[minIdx])
minIdx = i;
}

const int bSize = n - minIdx - 1, bytesToCopy = bSize * sizeof(int);
int* b = (int*)malloc(bytesToCopy);
memcpy(b, a + minIdx + 1, bytesToCopy); // Копируем нужное в массив B
qsort(b, bSize, sizeof(int), compare); // Сортируем
printf("Отсортированный массив B из элементов, лежащих за минимальным в A:\n");
int sum = 0, positives = 0;

for (int i = 0; i < bSize; i++) {
printf("%d ", b[i]); // Выводим B
if (b[i] > 0) { // Суммируем и считаем положительные элементы
positives++;
sum += b[i];
}
}

const double average = positives ? (double)sum / positives : 0.0;
printf("\nСреднее арифметическое положительных чисел: %.2lf\n", average);
free(b);
free(a);
return 0;
}
СП
Сергей Павлов
20 861
Лучший ответ
Рустик ?!?!?!? Спасибо!!
‹( ͡° ͜ʖ ͡° )›