"Я ще не вивчав буде ві змінні і не маю права виконувати лабораторну використовуючи тип bool, тепер вам стало зрозуміло чому я продовжую своє??"
тоді ти не можеш виконати це завдання! Бо число може або бути простим, або не бути простим. Лише два значення в діапазоні, тобто треба використовувати саме тип bool.
На те і є інтернет, щоб шукати і знаходити рішення. Але треба вчитись думати і вчитись знаходити інформацію. Доречі друге набагато ефективніше.
На останок якби ти все ж пошукав в інтернеті, то знайшов би таке:
тип int можна використовувати як тип bool (0 = false, інше = true), тому функція is_prime може мати заголовок
int is_prime(int n);
але ніяк не float, бо спіймати 0 є нетривіальна задача.
далі
от твій код:
printf("Введiть n=");
scanf_s("%i", &n);
for (int i = 1;i <= n;i++)
{
printf("Введiть a%d =", i);
scanf_s("%d", &a);
}
ти n разів пишеш в змінну а і потім дивуєшся що
що функція застосовується тільки до останньої веденої "а"
в тебе каша в голові. ти те, що повинно бути в функції main, переніс в is_simple, тобто ти не розумієш взагалі, що відбувається в твоєму алгоритмі!
а повинно бути так:
поки считується число
якщо воно є простим,
то додаемо його до суми простих
і збільшуємо кількість простих
виводимо суму простих поділену на кількість простих // середнє арифметичне
невже це так складно?