Informática, perguntado por vcsk999, 6 meses atrás

Atividade : Algoritmo Busca para a primeira ocorrência.

QUESTÃO EM ANEXO

Anexos:

Soluções para a tarefa

Respondido por neochiai
1

Resposta:

Segue a listagem abaixo.

Explicação:

Vamos implementar o algoritmo para uma lista de números inteiros, em linguagem C.

As listas de 21, 42 e 63 números podem ser geradas manualmente ou em alguma página geradora de números aleatórios.

#include <stdio.h>

#include <stdlib.h>

int busca_primeiro(int* A, int n, int x) {

   int sinal = 0;

   int local = -1;

   int j = 0;

   while (A[j] != x && j < n) {

       j = j + 1;

   }

   if (A[j] != x) {

       sinal = 0;

   } else {

       sinal = 1;

       local = j;

   }

   return sinal ? local+1: -1;

}

int main()

{

   int A[] = {77, 64, 100, 95, 64, 44, 93, 86, 11, 44, 98, 96, 52, 52, 44, 41, 93, 46, 80, 37, 35};

   int x = 41;

   int local = busca_primeiro(A, 21, x);

   if (local >= 0) {

       printf("Local: %d\n", local);

   } else {

       printf("Valor %d nao encontrado.", x);

   }

   int A1[] = {7,46,72,28,57,57,32,75,16,31,90,23,83,35,18,1,39,59,15,38,67,7,96,30,53,97,14,70,77,34,83,17,11,22,28,2,98,9,35,100,26,17};

   int x1 = 57;

   int local1 = busca_primeiro(A1, 42, x1);

   if (local1 >= 0) {

       printf("Local: %d\n", local1);

   } else {

       printf("Valor %d nao encontrado.", x1);

   }

   int A2[] = {27,63,40,65,9,31,41,35,23,29,26,36,85,80,27,2,97,42,80,25,100,83,73,20,67,50,28,54,13,96,70,44,38,12,2,89,14,50,31,6,81,51,65,95,97,75,74,6,55,20,14,79,24,37,100,55,65,8,41,85,25,95,60};

   int x2 = 89;

   int local2 = busca_primeiro(A2, 63, x2);

   if (local2 >= 0) {

       printf("Local: %d\n", local2);

   } else {

       printf("Valor %d nao encontrado.", x2);

   }

   return 0;

}

Perguntas interessantes