C/C++

Написать массив на C(не C++) пожалуйста!!! простым языком с пояснениями

Дан одномерный массив А неупорядоченных натуральных чисел. Если все числа, которые больше среднего арифметического элементов массива, являются простыми, то вывести на экран сообщение «Да», иначе — сообщение «Нет».
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define N 6
int is_prime(unsigned x) {
int p;
if (x == 1) p = 0;
else if (x == 2) p = 1;
else if (~x & 1) p = 0;
else if (x < 6) p = 1;
else if (0 == x % 3 || 0 == x % 5) p = 0;
else {
unsigned n;
for (n = 3; n * n <= x && x % n; n += 2) { ; }
p = n * n > x? 1 : 0;
}
return p;
}
int main(void) {
int a[N];
int i;
double sum, avg;
int flag;
srand((unsigned)time(NULL));
int q = 24;
do {
for (i = 0; i < N; ++i) {
int x = 2 + rand() % 18;
a[i] = (x > 2) && (~x & 1) ? --x : x;
}
for (i = 0; i < N; ++i) printf("%4i", a[i]);
sum = 0;
for (i = 0; i < N; ++i) sum += a[i];
avg = sum / N;
flag = 1;
for (i = 0; i < N; ++i) {
if (a[i] > avg && !is_prime(a[i])) {
flag = 0;
break;
}
}
puts(flag ? " : Yes" : " : No");
} while (--q);
system("pause > nul");
}
Евгений Киселев
Евгений Киселев
78 263
Лучший ответ