Ayuda c++ Escalera de numeros

Iniciado por vladelukr, 12 Febrero 2016, 21:30 PM

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

vladelukr

Hola, estoy intentando aprender c y me he topado con el problema de que no se hacer una escalera como esta

Citar1234
123
12
1
12
123
1234

He conseguido hacer esto
Citar1234
123
12
1

123
123
123

Pero no se quitar el enter y tampoco hacer que regrese al 3 xD Ayuda pls

PD: mi codigo es
Citarint pacman(int n){
   int num, lin;
   
   for(lin = 0;lin < n*2;lin++){
     
     if(lin <= n){
   for(num = 1;num <= n - lin;num++)
     cout << num;
   cout << endl;
     }
     else{
   for(num = 1;num < n;num++)
     cout << num;
   cout << endl;
     }
   }
   
   return(lin);
}
Con ansias de poder y convertirme en Hacker conocido.

Stakewinner00

una solución rápida podría ser
Código (cpp) [Seleccionar]
#include <iostream>

//Función que imprime números desde min hasta max
void print(int max, int min) {
 for(int i = min; i < max; i++) {
   std::cout << i+1;
 }
 std::cout << std::endl;
}

int main() {
 int n = 4;

 for(int i = 0; i < n; i++) {
   //Para cada iteración el número más grande a imprimir se decrementa en uno,
   print(n-i, 0);
 }

 //Empezamos en uno porque el 1 ya lo imprimió el bucle anterior y sino se repetirian
 for(int i = 1; i < n; i++) {
   //Le sumamos 1 porque como ya tenemos el uno la ha de imprimir 12 en la primera iteración
  //También se podría dejar como print(i,0) y cambiar la comparacion por i != n.
   print(i+1, 0);
 }
}


En vez de intentar meterlo todo en una misma función a veces es más fácil pensarlo si creas funciones auxiliares.

vladelukr

Con ansias de poder y convertirme en Hacker conocido.