Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou fazendo uma cadeira na faculdade de Algoritimo e Programação de computadores..
O professor mandou um exercicio para casa:
1- Ler diversos numeros inteiros até conseguir armazenar 10 numeros primos.
2- Mostrar a media desses valores.
3- Mostrar os numeros primos maiores do que a media.
main(){
int N, S, J;
float M, X;
int D[10];
J=0;
while(J<=9){
printf("Digite o valor: ");
scanf("%d", &N);
if(N==2 || N==3){
D[J]=N;
J++;
}else{
if(N==1 || N==0){
J=J;
}else{
S=0;
if(N%2==0){
X=(N/2);
}else{
X=(N/2)-0.5;
}
for(int I=2;I<=X;I++){
if(N%I==0){
S++;
}
}
if(S==0){
D[J]=N;
J++;
}
}
}
}
S=0;
for(int I=0;I<10;I++){
S=S+D[i];
}
M=S/10;
printf("A Media e: %f\n", M);
printf("Numeros maiores do que a media: ");
for(int I=0;I<10;I++){
if(D[i]>M) printf("%d ", D[i]);
}
system("pause");
}
O problema é que quando o programa calcula a media, a media fica como se fosse cravada..
Por exemplo:
eu digito 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29.
os numeros primos são: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29.
A media deles é 12,9, mas o printf só mostra 12.000.
Errei alguma besteira? Espero por ajuda ;)
Obrigado
Carregando comentários...