Вы добавляете к sum
и nrprim
каждый раз, когда находите число, которое не является его фактором.Например, когда i == 8
, вы добавите к ним, когда j
равно 3
, 5
, 6
или 7
.
. Число простое, только если нет из чисел ниже это факторы.Вы должны подождать до конца цикла j
, чтобы узнать это.
И если вы хотите, чтобы дроби в среднем, вам нужно преобразовать одно из значений в float
перед делением.В противном случае вы получите целочисленное деление.
#include<stdio.h>
#include<conio.h>
int main()
{
int v[50], n, i, nrprim = 0, sum = 0, j;
float medie = 0;
printf("dati numarul de elemente al vectorului:\t");
scanf("%d", &n);
for ( i = 0; i < n; i++)
{
printf("dati elmentele vectorului:\t");
scanf("%d", &v[i]);
}
for(i=0; i<n; i++)
int is_prime = 1;
for(j=2; j<v[i]; j++)
{
if(v[i]%j == 0)
{
is_prime = 0;
break;
}
}
if (is_prime) {
sum = sum + v[i];
nrprim++;
}
medie = float(sum)/nrprim;
printf("%f", medie);
_getch();
return 0;
}