El siguiente problema lo he venido encontrado a menudo en diferentes clases, el objetivo es el correcto manejo de la sentencia FOR y el printf.
Lo que busca es ingresar el valor de un número que representa el lado de un rombo e imprimir en pantalla el rombo. un ejemplo de ejecución:
Os dejo el código:
#include <iostream>
void imprimirFila(int fila, int lado)
{
//calculo de fila en el caso de estar en el triangulo inferior
if(fila>lado) fila = (lado * 2) - fila;
//calcular el número de blancos a imprimir
int blancos = (lado * 2) - fila;
//calcular el número de caracteres a imprimir
int impreso = (fila * 2) - 1;
//impresion de blancos
for(int i=1; i<=blancos; i++) printf(" ");
//impresion de caracteres
for(int i=1; i<=impreso; i++) printf("X");
//imprime salto de linea
printf("\n");
}
int main(int argc, char** argv) {
//ingresa el valor del rombo
int lado = 0;
printf("ingrese el lado del rombo:");
scanf("%d", &lado);
printf("el valor del lado ingresado es: %d\n", lado);
//calculamos el número de lineas a imprimir
int lineas = (lado * 2) - 1;
//un for para imprimir cada linea
for(int fila = 1; fila<=lineas; fila++)
{
imprimirFila(fila, lado);
}
return 0;
}
No hay comentarios:
Publicar un comentario