• Matéria: Informática
  • Autor: tatianemidori
  • Perguntado 7 anos atrás

Escreva um algoritmo que preencha um vetor de 50 números inteiros e substitua todos os números primos por zero.

Respostas

respondido por: Gabrielmartinsseco
1

Resposta:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define tam 50

void ordena_vet(int *vet[])

{

   int aux = 0;

   for(int i=0; i<tam; i++)

       for(int j=0; j<tam-1; j++)

           if(vet[j] > vet[i])

           {

               aux = vet[j];

               vet[j] = vet[i];

               vet[i] = aux;

           }

}

int main()

{

   srand(time(NULL));

   //CRIAR VARS

   int flag, i, j, vet[tam];

   //INICIALIZAR VARS

   for(i=0; i<tam; i++)

       vet[i] = 0;

   flag = 0;

   //PROCESSAR DADOS

   //NÃO RECEBER ELEMENTOS REPETIDOS NO VETOR

   for(i=0; i<tam; i++)

   {

       vet[i] = rand() % tam;

       for(j=0; j<i; j++)

           while(vet[i] == vet[j])

           {

               vet[i] = rand() % tam;

               j = 0;

           }

   }

   //ORDENAR VETOR

   ordena_vet(&vet);

   //SUBSTITUIR NÚMEROS PRIMOS POR ZERO

   for(i=0; i<tam-1; i++)

   {

       for(j=1; j<=tam-1; j++)

           if(vet[i] % j == 0)

               flag++;

       if(flag == 2)

           vet[i] = 0;

       flag = 0;

   }

   printf("\n\n\t=====================");

   printf("\n\t|| VETOR DE 0 A 49 ||");

   printf("\n\t=====================\n\n");

   for(i=0; i<tam; i++)

       printf("\n VETOR [%3d]: %3d\n",i+1,vet[i]);

   return 0;

}

Explicação:

Fiz o código de forma que o vetor também fosse preenchido com valores de 0 a 49 ordenado crescentemente.

Abraços e bons estudos!

Perguntas similares