Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 06 de Julio 2016, 20:07
-
Buenas tardes. Dejo una posible solución del ejercicio CU00542F del curso aprende a programar en lenguaje C desde cero.
EJERCICIO
Crear un programa que muestre en pantalla un diamante formado por asteriscos, dado un valor de número de asteriscos máximo en el punto central del diamante o rombo. Ejemplo: si el valor en el punto central es 5 el rombo sería:
Ejemplo:
*
**
***
****
*****
****
***
**
*
Nota: antes de crear el código hay que estudiar la lógica para proceder a crear el rombo, teniendo en cuenta que para poder mostrarlo habremos de dejar espacios en blanco a la derecha e izquierda de todas las líneas excepto la central.
#include <stdio.h>
#include <stdlib.h>
int main() {
char espacioEnBlanco = ' ';
int i,j, maxFilas=0;
do{
printf("Cuantas filas quieres que tenga tu rombo para arriba (minumo 5 y maximo 50)?: ");
scanf("%d", &maxFilas);
}while(maxFilas<5 || maxFilas>100);
int filas=maxFilas;
int asterisoMax=2;
if(maxFilas != 0){
for(i=0;i<maxFilas;i++){
printf("\t\t\t\t\t");
for(j=0;j<filas;j++){
printf("%c",espacioEnBlanco);
}
for(j=0;j<asterisoMax;j++){
printf("*");
}
puts("");
filas--;
asterisoMax=asterisoMax+2;
}
for(i=0;i<maxFilas+1;i++){
printf("\t\t\t\t\t");
for(j=0;j<filas;j++){
printf("%c",espacioEnBlanco);
}
for(j=0;j<asterisoMax;j++){
printf("*");
}
puts("");
filas++;
asterisoMax=asterisoMax-2;
}
}
return 0;
}
Gracias.
-
Hola.
El código pide introducir el número de líneas que va a tener el rombo, y luego el rombo tiene el doble mas 1 de las líneas introducidas.
Es lo único que veo a corregir.
Saludos. ;D
-
Buenas, Pedro.
Gracias por corregirme otro ejercicio más. Por eso puse "Cuantas filas quieres que tenga tu rombo para arriba", es decir, de la mitad para arriba. Quizás no me expresé bien.
Saludos.
-
Ok, entendí mal entonces.
Saludos.