Ayuda con recursividad en C plz

Discussion in 'Programación & Programación Web' started by Ibellog, May 15, 2012.

  1. Ibellog

    Ibellog Usuario Nuevo nvl. 1
    87/163

    Joined:
    Jan 27, 2012
    Messages:
    331
    Likes Received:
    0
    Hola amigos resulta que tengo el siguiente programa:
    #include <stdio.h>

    int linea(int);
    int main()
    {
    char numero;
    int cont;
    numero=5;

    printf("Introduzca el numero de lineas que desee \n");//
    scanf("%d",&numero);

    for (cont=0;cont < numero;cont++)
    linea(cont);

    fflush(stdin);
    getchar();
    return 1;
    }

    int linea(int caracteres)
    {
    int cont;

    for(cont=0;cont<=caracteres;cont++)
    putchar((cont%9)+'++a' );
    printf("\n");

    return 1;
    }


    que imprime algo asi como:


    a
    ab
    abc
    abcd...


    Bueno yo necesito efectuar lo mismo con una funcion recursiva que imprima la piramide al revez:


    abcde
    abcd
    abc
    ab
    a


    Por favor! ayuda....
     
  2. cerebrox27

    cerebrox27 Usuario Nuevo nvl. 1
    16/41

    Joined:
    Dec 28, 2010
    Messages:
    522
    Likes Received:
    0
    mira este link que sale la tabla ascii, http://gonzo.teoriza.com/tabla-codigo-ascii
    y trabaja imprimiendo el char relacionado con un numero.

    fijate que a=97, entonces si numero=5, empezaria con abcde,luego abcd.
    entonces limite= a+(numero-1)= 101

    aqui el pseudocodigo(no es c)

    funcion(limite,)
    {
    if(limite==97)
    {
    imprimir a
    return 1;
    }
    for(int i=97;i<=limite;i++)
    {
    imprimir el char cuyo numero es limite
    }
    funcion(limite-1)
    }

    //llama a la funcion asi
    a=97
    limite= a+(numero-1);
    funcion(limite)
    if(funcion==1 && numero>0)
    imprimir funcion
    else
    imprimir "no se puede obtener blabla"
     
    #2 cerebrox27, May 20, 2012
    Last edited: May 21, 2012
  3. sIMP.

    sIMP. Usuario Casual nvl. 2
    87/163

    Joined:
    Jul 29, 2009
    Messages:
    7,437
    Likes Received:
    4
    main(){
    piramide2(V[],x);
    piramide(V[ ] ,x);
    }


    piramide (V[ ],X)
    {
    print V[x];
    if(V[x]>=0)
    piramide(V[],V[x-1];
    }

    piramide2 (int V[ ],int X){ // funcion que te imprime el vector completo
    z=x;
    int k=0;
    print V[x];
    if(V[x]<>V[y+1])
    piramide2(V[],V[x+1]);
    }

    pD: me faltaron weas pero por ahi va que me di cuenta que tenia errores en la declaracion y weas
     
    #3 sIMP., May 21, 2012
    Last edited: May 21, 2012
  4. cerebrox27

    cerebrox27 Usuario Nuevo nvl. 1
    16/41

    Joined:
    Dec 28, 2010
    Messages:
    522
    Likes Received:
    0
    #include <stdio.h>
    #include <stdlib.h>


    void funcion(int limite);//prototipo de la funcion
    int main(void)
    {
    int n;
    printf("Introduzca el numero de lineas que desee \n");
    scanf("%d",&n);
    if(n<0)
    {
    printf("error");
    }
    else{
    int limite;
    limite= 97+n;
    funcion(limite);
    }
    }

    void funcion(int limite)
    {
    int i;
    if(limite==97)
    {
    return;
    }
    for( i=97; i<limite; i++) {
    printf("%c ", i);
    }
    printf("\n");
    funcion(limite-1);
    }