Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pulse

Inverter vetor c/ recursividade

Recommended Posts

Crie um programa em C que receba um vetor de números reais com 100 elementos. Escreva uma função recursiva que inverta ordem dos elementos presentes no vetor.

#include <stdio.h>

int inverte(int vetor[], int, int);

int main()
{
    int p=0, i;
    int u=99;
    int vetor[100];

    for(i=0; i<100; i++)
    {
        scanf("%d", &vetor[i]);
    }

    if(inverte(vetor, p, u) == 0)
    {
        for(i=0; i<100; i++)
        {
            printf("%d", vetor[i]);
        }
    }
}

int inverte(int vetor[100], int p, int u)
{
    int aux;

    if(p<50 && u<50)
    {
        return 0;
    }
    else
    {
        aux = vetor[p];
        vetor[p] = vetor[u];
        vetor[u] = aux;
        return inverte(vetor, p+1, u-1);
    }
}

Tentei fazer mas tem algo errado no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De novo: dê nomes que queiram dizer algo. O que é p? O que é u? O que é aquela comparação?

Posso executar o código mas não sei como corrigir.

#include <stdio.h>
#define MAX 5
void inverter(int numeros[MAX], int posicao) {
    if (posicao < MAX/2) {
        int tmp = numeros[posicao];
        int nova_posicao = MAX-posicao-1;
        numeros[posicao] = numeros[nova_posicao];
        numeros[nova_posicao] = tmp;
        inverter(numeros, posicao+1);
    }
}
int main(void) {
    int numeros[MAX];
    for(int i=0; i<MAX; i++)
        scanf("%d", &numeros[i]);

    inverter(numeros, 0);
    for(int i=0; i<MAX; i++) 
        printf("%d%c", numeros[i], (i == MAX-1)? '\n':' ');
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.