elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Ayuda Pirame-Arbol con *
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Ayuda Pirame-Arbol con *  (Leído 1,543 veces)
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
[C] Ayuda Pirame-Arbol con *
« en: 2 Junio 2016, 23:26 pm »

Buenas tardes, hoy les pido ayuda con un programa que no logro entender la logica.
No pido que solo me muestren el codigo bien hecho, porque lo busque en internet y no puedo entender la logica de los for, sino que también me ayuden a entenderlo con comentarios en el programa.

Les paso mi programa:


Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0,g=0;
    for(i=0;i<=8;i++)
    {
        for (j=8;j>=i;j--)
        {
            printf(" ");
        }
        for (g=1;g<=(2*i)-1;g++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

Este programa imprime medio arbol de navidad, lo que busco es que imprima uno completo en el centro de la consola.
¿Alguno me ayuda?

Mi objetivo principal es lograr entender como con un for puedo poner un * en medio de la consola. Si se puede hacer sin un printf(" "); (vacio) mucho mejor.

Y no busco utilizacion de funciones o procedimientos, solo en el cuerpo principal.

Muchas gracias!


Aca logre separarlo de la pared de la consola, pero con un printf vacio. Lo que no logro hacer es completarlo del otro lado, me queda medio arbol.

Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0, x=0;

    for(i=1;i<18;i++){
        for(x=18;x>=i;x--){
            printf(" ");
        }
        for(j=1;j<i;j++){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}


« Última modificación: 2 Junio 2016, 23:30 pm por n-utz » En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: [C] Ayuda Pirame-Arbol con *
« Respuesta #1 en: 2 Junio 2016, 23:49 pm »

No es un printf "vacío". Lo que hace ese printf es imprimir un espacio. Es como si pusieras putc(' '). Ahí hay un espacio. En ANSI C no puedes moverte por la consola con un sistema de coordenadas. Como mucho, puedes hacer lo que se hace en el código, y es imprimir línea a línea el arbol

El árbol es el siguiente:
Código:
         
        *
       ***
      *****
     *******
    *********
   ***********
  *************

Como ves, antes de los asteriscos que forman el árbol hay espacios.

Para la primera línea, se imprimen 9 espacios, para la segunda 8, para la tercera 7... y para la última, 0 espacios. Eso es lo que hace el primer for. El segundo for imprime los asteriscos.


« Última modificación: 2 Junio 2016, 23:54 pm por class_OpenGL » En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [C] Ayuda Pirame-Arbol con *
« Respuesta #2 en: 3 Junio 2016, 00:38 am »

No es un printf "vacío". Lo que hace ese printf es imprimir un espacio. Es como si pusieras putc(' '). Ahí hay un espacio. En ANSI C no puedes moverte por la consola con un sistema de coordenadas. Como mucho, puedes hacer lo que se hace en el código, y es imprimir línea a línea el arbol

El árbol es el siguiente:
Código:
         
        *
       ***
      *****
     *******
    *********
   ***********
  *************

Como ves, antes de los asteriscos que forman el árbol hay espacios.

Para la primera línea, se imprimen 9 espacios, para la segunda 8, para la tercera 7... y para la última, 0 espacios. Eso es lo que hace el primer for. El segundo for imprime los asteriscos.

Sip, sabia que el printf vacio hacia el espacio, queria una solucion sin eso. Pense que con un for me podia parar en el medio de la consola. ¿La unica forma es esa?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [C] Ayuda Pirame-Arbol con *
« Respuesta #3 en: 3 Junio 2016, 00:40 am »

si, a menos que uses librerías adicionales (ncurses) o técnicas especiales (ANSI scape codes) no hay mas forma que colocar espacios
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda en arbol
Programación C/C++
josue_tux 0 1,349 Último mensaje 27 Junio 2011, 08:07 am
por josue_tux
Ayuda con arbol
Java
jelsir 2 1,963 Último mensaje 5 Abril 2013, 22:43 pm
por jelsir
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines