Ir para conteúdo
Fórum Script Brasil
  • 0

recursividade


newnoob

Pergunta

to fazendo um programa em C que diz se um vetor esta ordenado ou não com recursividade, mas ta dando um erro, vo posta uma parte do codigo se alguém puder me ajudar eu agradeço

#include "funcao.h"

int esta_ordenado (int v[], int n)

{

int ini = 0;

int fim = n - 1;

while (ini <= fim){

if (ini <= fim);

return 1;

else if (ini > fim);

return 0;

}

}

essa não é a main é só u funcao, ta aparecendo assim "sintax error before "else".

alguém sabe como arruma isso e aproveitando o resto do codigo esta certo?

vlw

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

você ta errando o seguinte!

você esta comparando a variavel inicio com a fim ao invés de comparar as posiçoes do vertor e você também esqueceu q funcao recurciva chama ela mesma no seu código não esta chamando ela mesma.

da uma olhadinha nete codigo abaixo:

deu trabalho mas esta feito heheheh

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

// funcao do tipo booleano 
bool esta_ordenado (int v[], int r)
{
    if(v[r+1] == ''){ // aqui verifica se a procima posicao é a ultima do seu vetor
        return true;    // pois todo o vetor termina com  caso seja seu programa chegou
    }                   // na ultima opçao sem problema então ele retorna que esta certo
    else
        if (v[r] <v[r+1]){ // aqui o programa verifica se o elemento da segunda opcao é maior
            r++; // incrementar para mudar de posicao
            if (esta_ordenado(v, r)){ // chama a funcao novamente
                return true;
            }else return false;
        }else return false;
}

int main (){
    int a[] ={1,2,3,4,5,6};
    int r=0;



    if (esta_ordenado(a, r)) // se o final ele retornar verdadeiro exibe q esta ordenado
        printf ("esta ordenado!");
    else  // se não exibe que não esta ordenado
        printf ("não ordenado!");

    system("pause");
    return 0;
}

// lembrar que variáveis do tipo boleano são de c++

Link para o comentário
Compartilhar em outros sites

  • 0

Tem uma coisinha nesse código que eu estou estranhando. Não sei se tem a ver com o erro que você tá falando, mas dá uma olhada nesse ponto e vírgula depois do "else if (ini > fim)". Do jeito que tá, você tá dizendo que se início é maior que fim então não é pra fazer nada. Se você tirar o ponto e vírgula, aí sim, quer dizer que se início é maior que fim então retorna 1.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...