Leon Lopes Postado Setembro 25, 2018 Denunciar Share Postado Setembro 25, 2018 include<stdio.h> int main(){ int v[10],par=0,imp=0,pri=0,i,x,div=0; printf("digite 10 numeros: \n"); for(i=0;i<9;i++){ scanf("%d\n",&v); } for(i=0;i<9;i++){ if(v%2==0){ par++; } else{ imp++; } } for(i=0;i<9;i++){ for(x=1;x<=v;x++){ if(v%x==0){ div++; } if(div==2){ pri++; } } } printf("PARES: %d\nIMPARES: %d\nPRIMOS: %d\n",par,imp,pri); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Visitante Postado Outubro 11, 2018 Denunciar Share Postado Outubro 11, 2018 (editado) Olá. Fazendo uso de uma função fika muito mais simples resolver esse exercício (não sei se estudou sobre funções) Se conseguir entender a lógica que é usada na função vai saber resolver fazendo uso de dois for aninhados (por exemplo) Segue o código: #include <stdio.h> int ehPrimo(int n) { int i, primo; primo = 1; for (i = 2; i < n; i++) { if (n % i == 0) primo = 0; } return (primo && n > 1); } int main() { int v[10], par, imp, pri, i, x, div; for (i = 0; i < 10; i++) { printf("Digite o numero %d: ", i + 1); scanf("%d", &v[i]); } for (i = 0; i < 10; i++) { printf("%d ", v[i]); } par = 0; imp = 0; for (i = 0; i < 10; i++) { if (v[i] % 2 == 0) { par++; } else if (v[i] % 2 != 0) { imp++; } } pri = 0; for (i = 0; i < 10; i++) { if (ehPrimo(v[i])) pri++; } printf("\nPARES: %d\nIMPARES: %d\nPRIMOS: %d\n", par, imp, pri); return 0; } Vê se consegue entender a lógica do código para daí resolver o exercício sem o uso de uma função Editado Outubro 11, 2018 por Visitante correção no código Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Visitante Postado Outubro 11, 2018 Denunciar Share Postado Outubro 11, 2018 (editado) Olá @Leon Lopes Da forma como você está fazendo para verificar a quantidade de números primos não tem como dar certo Você não está verificando se um número do vetor é divisível por outro valor, o que você está fazendo é verificando se uma variável é divisível por outra (o resto da divisão de uma variável por outra). Percebe onde está o erro? Também é importante ajustar o for que percorre todos os índices do vetor, que deve ir de 0 a 9 Veja como ficaria o cálculo para os números primos: pri = 0; for (i = 0; i < 10; i++) { div = 0; for (j = 1; j <= vet[i]; j++) { if (vet[i] % j == 0) { // Verifica se o resto da divisão de um número do vetor por j (se um nº do vetor é divisível por j) div++; } } if (div == 2 && vet[i] > 1) { pri++; } } Procure perceber a diferença e vai ver onde estava o erro Para calcular a quantidade de números pares e ímpares um if/else já resolve, do modo como vinha fazendo Forte abraço! Editado Outubro 11, 2018 por Visitante Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leon Lopes
include<stdio.h>
int main(){
int v[10],par=0,imp=0,pri=0,i,x,div=0;
printf("digite 10 numeros: \n");
for(i=0;i<9;i++){
scanf("%d\n",&v);
}
for(i=0;i<9;i++){
if(v%2==0){
par++;
}
else{
imp++;
}
}
for(i=0;i<9;i++){
for(x=1;x<=v;x++){
if(v%x==0){
div++;
}
if(div==2){
pri++;
}
}
}
printf("PARES: %d\nIMPARES: %d\nPRIMOS: %d\n",par,imp,pri);
return 0;
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.