Ir ao conteúdo
  • Cadastre-se

Crash em programa em C


FresHHerB

Posts recomendados

To fazendo um programinha pra printar numeros primos na tela, não terminei ainda, falta uns detalhes pra corrigir, mas queria que alguem me desse um help pra saber porque o programa ta crashando antes do ultimo printf.

CÓDIGO:

#include <stdio.h>
#include <stdlib.h>

/*int resto_divisao (int dividendo, int divisor){

    int resto;

    resto=dividendo%divisor;
    return(resto);
}*/

void main(){

    int numero=4;
    int vet[numero];
    int vet_primo[numero];
    int i,j,x=0,cont=0,cont2=0,aux;
    int *pont;
    
    for(i=2;i<=numero;i++){ //atribuir valor de 2 ate n aos vetores
        vet[i-2]=i;
    }
    
    for (i=2;i<numero+1;i++){
        printf("\nO valor do vetor %d é %d\n", i-1, vet[i-2]);
    }

    for(i=numero-1;i>=0;i--){ //i=3 NUMERO 4
        for(j=numero-2;i>=0;j--){ //j=2 numero 3
            if((vet)%(vet[j])==0){
                cont=cont++;
            }
        }
        if(cont==0){
            vet_primo[x]=vet[numero-1];
            x++;
            cont2++;
        }
    }
    
    printf("\nOs numeros primos sao: \n"); //NÃO ESTÁ PRINTANDO AQUI!
}

  

Link para o comentário
Compartilhar em outros sites

Acho que seu "for" está meio confuso. Dê uma revisada

comentei linha por linha pra exemplificar o funcionamento, não encontrei erro.

 

    for(i=numero-1;i>=2;i--){ //i=3 NUMERO 4 - 3 - 2        for(j=numero-2;i>=2;j--){ //j=2 numero 3 - 2            if((vet[i])%(vet[j])==0){ //Verifica se é primo (resto diferente de 0)                cont=cont++; //se não for, encrementa o contador            }        }        if(cont==0){ //Se contador tiver zerado é primo            vet_primo[x]=vet[numero-1]; //atribui o vetor atual que foi verificado primo a outro vetor            x++; //encrementa vetor dos primos para a proxima atribuicao        }    }
Link para o comentário
Compartilhar em outros sites

é divisao por 0?se for é porque voce ta comparando com "i" e vai da um loop infinito

for(j=numero-2;i>=0;j--){ //j=2 numero 3

 

se for porque os numeros nao estão sendo impressos aqui,é porque voce nao ta colocando os numeros para serem impressos..

printf("\nOs numeros primos sao: \n"); //NÃO ESTÁ PRINTANDO AQUI!

Link para o comentário
Compartilhar em outros sites

é divisao por 0?se for é porque voce ta comparando com "i" e vai da um loop infinito

for(j=numero-2;i>=0;j--){ //j=2 numero 3

 

se for porque os numeros nao estão sendo impressos aqui,é porque voce nao ta colocando os numeros para serem impressos..

printf("\nOs numeros primos sao: \n"); //NÃO ESTÁ PRINTANDO AQUI!

Era o loop infinito mesmo, valeu!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...