Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: vladelukr en 12 Febrero 2016, 21:30 pm



Título: Ayuda c++ Escalera de numeros
Publicado por: vladelukr en 12 Febrero 2016, 21:30 pm
Hola, estoy intentando aprender c y me he topado con el problema de que no se hacer una escalera como esta

Citar
1234
123
12
1
12
123
1234

He conseguido hacer esto
Citar
1234
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
Citar
int 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);
}


Título: Re: Ayuda c++ Escalera de numeros
Publicado por: Stakewinner00 en 13 Febrero 2016, 01:26 am
una solución rápida podría ser
Código
  1. #include <iostream>
  2.  
  3. //Función que imprime números desde min hasta max
  4. void print(int max, int min) {
  5.  for(int i = min; i < max; i++) {
  6.    std::cout << i+1;
  7.  }
  8.  std::cout << std::endl;
  9. }
  10.  
  11. int main() {
  12.  int n = 4;
  13.  
  14.  for(int i = 0; i < n; i++) {
  15.    //Para cada iteración el número más grande a imprimir se decrementa en uno,
  16.    print(n-i, 0);
  17.  }
  18.  
  19.  //Empezamos en uno porque el 1 ya lo imprimió el bucle anterior y sino se repetirian
  20.  for(int i = 1; i < n; i++) {
  21.    //Le sumamos 1 porque como ya tenemos el uno la ha de imprimir 12 en la primera iteración
  22.   //También se podría dejar como print(i,0) y cambiar la comparacion por i != n.
  23.    print(i+1, 0);
  24.  }
  25. }
  26.  

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


Título: Re: Ayuda c++ Escalera de numeros
Publicado por: vladelukr en 13 Febrero 2016, 02:09 am
Muchas gracias ^^