Ir ao conteúdo

Posts recomendados

Postado

Pessoal, sou novo no fórum mas sempre acompanhei anonimadamente, e sei que vocês são bem úteis, e pretendo ser reciproco também.

Seguinte, andei fazendo uns exercícios e me deparei com um certo mini desafio "criar um array que o usuario deverá setar o tamanho do mesmo e em seguida digitará a quantidade em cada posição setada e no final deverá ver se algum dos numeros digitados for primo, deverá "migrar" para um outro array" Bom não sei se consegui explicar muito bem... mas eu tentei, e sem sucesso, vou postar aqui como ficou meu código e gostaria que vocês me dissessem qual foi o erro e qual seria a solução, agradeço desde já!

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

int main()
{
   int y,i,x,z,j;
   int divis = 0;
   int ar = 0;
   printf("digite a quantidade de numeros no array\n"); scanf(" %d",&y);
   int primos[y];
   int ar2[y];
   printf("agora digite a sequencia de numeros:\n");
   for(i=0;i<primos[y-1];i++) //ARMAZENAR SEQUENCIA NO ARRAY
    scanf("%d",&primos);
   for(x=0;x<y;x++)
{
    for(z=1;z<=primos[x];z++)
    {
    if(primos[x]%z == 0)
        divis++;
    }
        if(divis == 2){
        ar2[ar] = primos[x];
            ar++;
            }
}
   for(j=0;j<y;j++)
   printf("Numeros primos : %d ",ar2[j]);
}
 

 

Postado

Eu não cheguei a testar, mas arrumei alguns erros que vi

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

int main()
{
   int y, i, x, z, j;
   int divis = 0;
   int ar = 0;
   printf("digite a quantidade de numeros no array\n");
   scanf("%d", &y);
   int primos[y];
   int ar2[y];
   printf("agora digite a sequencia de numeros:\n");
   for(i = 0; i < y; i++) //Concorda que primo[y-1] contém lixo de memória?
      scanf("%d",&primos[i]); //aqui tem que ser &primos[i]
   for(x = 0; x < y; x++)
   {
      divis = 0; //Tem que resetar essa variável toda vez para não dar problema
      for(z = 1; z <= primos[x]; z++)
      {
         if(primos[x] % z == 0)
         divis++;
      }
      if(divis == 2){
         ar2[ar] = primos[x];
         ar++;
      }
   }
   printf("Numeros primos: "); //recomendo printar essa parte fora do ciclo
   for(j = 0; j < ar; j++) //Aqui o contador vai até ar por ser ela quem guarda a quantidade de elementos
      printf("%d ", ar2[j]);
}

Faltou também apagar os números primos do primeiro array, mas não sei se você queria isso.

  • Curtir 1
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...