ayuda con una pirámide

Iniciado por Exynoz, 3 Abril 2016, 05:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Exynoz

generar pirámide de dígitos en C. Ejemplo Si N = 5, imprimirá
1
121
12321
1234321
123454321

ya he intentado varias cosas y no veo la forma de conseguirlo
hice esto pero ni de cerca es
Código (cpp) [Seleccionar]
for(i=1;i<=k;i++) {
for(j=1;j<=k-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%i ",j);
printf("\n");
}

ayuda por favor, expliquenme cómo se haría

engel lex

lo tienes casi perfecto solo te sobra un espacio...

Código (cpp,5) [Seleccionar]
for(i=1;i<=k;i++) {
for(j=1;j<=k-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%i",j);
printf("\n");
}


si no se ve bien, es cosa de tu consola
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.

Exynoz

Gracias, ya, es sólo que ese código da como resultado esto:
1
12
123
1234
12345

y yo necesito que me quede así:

1
121
12321
1234321
123454321

y no sé cómo formar un código para que me quede así. :-(

engel lex

ahh ya


igual lo tienes casi listo...
for(j=1;j<=2*i-1;j++)
con j empezando en 1; cuando j sea igual o menor que el doble de i-1, incrementar j en 1

lo que tienes que hacer es que no llegue hasta el doble (ni -1)... sino simplemente cuando llegue a i otro ciclo que reste (recuerda que j quedará uno mayor que i ya que así romperá el ciclo, así que empieza en j=i-1)
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.

Exynoz

http://diagramas-de-flujo.blogspot.mx/2013/02/imprimir-piramide-de-digitos-codigo-en-c.html?showComment=1459657842563#c7817572349927178807

   
#include <iostream> 
 
using namespace std ; 
 
void caracter(int n , char simb) 

    for ( int i = 0; i < n ; i++ ) 
        cout << simb ; 

 
void ascendente(int n) 

    for ( int i=1; i<= n ; i++ ) 
        cout << i ; 

 
void descendente( int n ) 

    for(int i=n ; i>=1; i--) 
        cout << i ; 

 
void fila(int f , int nf ) 

    caracter(nf-f , ' '); 
    ascendente(f); 
    descendente(f-1); 
    cout << endl ; 

 
 
void triangulo (int nf) 

    for(int f=1; f<=nf ; f++) 
        fila(f , nf); 
 

 
int main () 

    cout << "Ingrese numero de filas : " ; 
    int n_filas ; 
    cin >> n_filas ; 
    if ( n_filas < 10 ) 
        triangulo( n_filas ); 


encontré éste código en la web citada arriba y lo que genera éste código es lo que necesito sólo que no sé cómo pasarlo a C, está en C++.