Informática, perguntado por gustavodepaiva22, 3 meses atrás

Alguém poderia fazer esse código pra mim?

Em linguagem C (de preferência no C++ se possível)

Anexos:

Soluções para a tarefa

Respondido por joaolabrego
1

Resposta:

Explicação:

#include <stdio.h>

#include <stdlib.h>

int main()

{

   /* gera 1000 números aleatórios inteiros */

   const int TAMANHO = 1000;

   int numeros[TAMANHO];

   

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

       numeros[i] = rand();

   /* ordena em ordem crescente os 1000 números */

   for(int i = 0; i < TAMANHO; i++) {

       for (int j = i + 1; j < TAMANHO - 1; j++) {

           if (numeros[j] > numeros[j + 1]) {

               int aux = numeros[j];

               numeros[j] = numeros[j + 1];

               numeros[j + 1] = aux;

           }

       }

   }

   

   /* listar números */

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

       printf("%d\n", numeros[i]);

   

   /* Busca binária */

   int numero;

   do {

       printf("Entre com um número inteiro maior ou igual a zero: ");

       scanf("%d", &numero);

       if (numero < 0)

        break;

       printf("%d\n", numero);

    int esquerda = 0, direita = TAMANHO - 1, meio, encontrado = 0;

   

    while(esquerda <= direita && !encontrado){

  meio = (direita+esquerda) / 2;

  if (numeros[meio] == numero){

   encontrado = 1; /*Verdadeiro*/

   break;

  }

  else if (numero < numeros[meio])

   direita = meio - 1;

  else

   esquerda = meio + 1;

 }

       if (encontrado == 1)

           printf("ACHOU!!!\n");

       else

           printf("NAO ACHOU!!!\n");

} while (true);

return 1;

}

Perguntas interessantes