es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo centrar un patrón?

¿Cómo puedo alinear la cola de esta flecha centrada debajo de la cabeza de la flecha?

    **
   ****
  ******
 ********
**********
****
****
****
****

Aquí está mi código:

#include<iostream>
using namespace std;
int main() {
  int n;
  cout<<"ingrese el tamaño";
  cin>>n;

  int filas,columnas;
  cout<<"ingrese números";
  cin>>filas>>columnas;

  for(int k=1;k<=n;k++){
    for(int j=1;j<=n-k;j++){
      cout<<" ";
    }
    for(int j=1;j<=k;j++){
      cout<<"*";
    }
    for(int i=1;i<=k;i++){
      cout<<"*";
    }
    cout<<endl;
  }
  for(int i=1;i<=filas;i++){
    for(int j=1;j<=columnas;j++){
      cout<<"*";
    }
    cout<<endl;
  } 
  return 0;
}

Intento ejecutarlo con la siguiente entrada:

ingrese el tamaño 5
ingrese números 4 4 

La flecha se ve bien, pero la cola está alineada a la izquierda. ¿Cómo puedo llevarla al centro?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para alinear la cola de la flecha centrada bajo la cabeza de la flecha, tendrás que ajustar el número de espacios impresos en el primer bucle. Actualmente, el bucle imprime n – k espacios antes de imprimir los asteriscos de la cabeza de la flecha. Para centrar la cola, deberás calcular el punto medio de la cabeza de la flecha e imprimir el número apropiado de espacios antes de imprimir la cola.

    Una forma de hacer esto es calcular el punto medio como (n/2)+1 y usar este valor para determinar el número de espacios a imprimir antes de la cola. Puedes actualizar el primer bucle for de la siguiente manera:

     int midpoint = (n/2) + 1;
     for(int k = 1; k <= n; k++){
         for(int j = 1; j <= midpoint - k; j++){
             cout<<" ";
         }
         for(int j = 1; j <= k; j++){
             cout<<"*";
         }
         for(int i = 1; i <= k; i++){
             cout<<"*";
         }
         cout<<endl;
     }
    

    esto debería resultar en la cola de la flecha centrada bajo la cabeza de la flecha. }=”” esto=”” debería=”” resultar=”” en=”” la=”” cola=”” de=”” la=”” flecha=”” centrada=”” bajo=”” la=”” cabeza=”” de=”” la=””></endl;
    }

    esto debería resultar en la cola de la flecha centrada bajo la cabeza de la flecha.>

Comments are closed.