Q:

Por que meu return não retorna o i do for?

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

int BuscaLinear(int *sequencia[], int tamanho, int valor)
{

    int i;
    for(i=0;i<tamanho;i++)
    {
        if(sequencia[i] == valor)
        {
            return i;
        }
    }
    return -1;
}

int main()
{
    int tamanho, valor, resultado, j;
    int sequencia[10] = {11,22,33,44,55,6,7,8,9,1};

    tamanho = 10;

    printf("Digite o valor a ser encontrado: \n");
        scanf("%d",&valor);

    resultado = BuscaLinear(sequencia, tamanho, valor);

    if(resultado != -1)
    {
        printf("O valor esta na posicao %d do vetor!",resultado);
    }
    else
    {
        printf("O valor não foi encontrado");
    }

    return 0;
}

A:

O seu metodo int BuscaLinear(int *sequencia[], int tamanho, int valor) está recebendo um ponteiro de vetores. Declare assim:
int BuscaLinear(int *sequencia, int tamanho, int valor)
//ou
int BuscaLinear(int sequencia[], int tamanho, int valor)

Assim quando for verificar o valor de dentro do seu vetor, vai recolher o valor inteiro e não o endereço da posição do vetor.

