Ir ao conteúdo

C Encontrar número primo no vetor


Ir à solução Resolvido por Lucca Rodrigues,

Posts recomendados

Postado

Alguém pode me ajudar com esse código? Ele não retorna nada. 

Leia 10 números inteiros e armazene em um vetor. Em seguida escreva os elementos que são primos e suas respectivas posições no vetor 
 
*/ 

#include <stdio.h>
#include <locale.h>
#define tam 3


int main (void){ 
setlocale (LC_ALL, ""); 
int vet[tam], i, cont=0; 

		for (i=0;i<tam;i++){
			printf ("Entre com um número:"); 
			scanf ("%d", &vet[i]); 
		}
		
				for (i=2; i<tam; i++){ 
					if (vet[i]%i== 0)   
					cont++;  
							if (cont == 0)
							printf ("[%d]: %d é primo!",i, vet[i]);
			 
 
}
 

return 0; 
}

 

  • Solução
Postado

@Gabbie1

15 minutos atrás, Gabbie1 disse:
for (i=2; i<tam; i++){ 
    if (vet[i]%i== 0)   
        cont++;  
    if (cont == 0)
        printf ("[%d]: %d é primo!",i, vet[i]);


}

Acredito que sua intenção com isso era verificar o resto da divisão dos elementos do vetor `vet` com valores partindo de 2 até o valor de `vet` - 1, mas veja que você está incrementando um índice `i` que está sendo usado para indexar o vetor `vet`, e também esse índice `i` não é incrementado até atingir o valor de `vet` - 1, mas sim até atingir o valor de `tam`.

Aliás, o vetor deve ter espaço para 10 elementos, e você terá que atribuir 0 à `cont` sempre que precisar avaliar outro valor de `vet`.

Você pode usar dois loops, veja:

#define tam 10

#include <stdio.h>

int main (void){ 
    
    int vet[tam], cont; 
    
    for (int i = 0; i < tam; i++)
    {
        printf ("Insira um numero maior que 1: "); 
        scanf ("%d%*c", &vet[i]); 
    }
    
    puts("\nNumeros primos encontrados:");
    for (int i = 0; i < tam; i++)
    {
        cont = 0;
        for (int j = 2; j < vet[i]; j++)
        {
            if (vet[i] % j == 0)   
                cont++;
        }
        if (cont == 0)
            printf("Numero: [%d] | Posicao no vetor: [%d]\n", vet[i], i);
    }
    
    return 0; 
}
  • Amei 1
Postado

@Lucca Rodrigues 

Eu havia testado começar o vetor do 0, mas daí alterei pro 2 e esqueci de colocar 0 novamente.

 

Entendi! Nem tive a ideia de colocar outro loop, muito obrigada mesmo! A explicação vai me ajudar muito nos próximos exercícios.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!