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

Título: Dibujar rombo diamante en C usando printf, bucles y resto lenguajeC CU00542F
Publicado 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.

Citar
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.

Código: [Seleccionar]
#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.
Título: Re:CU00542F Dibujar rombo diamante
Publicado por: pedro,, en 07 de Julio 2016, 18:39
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
Título: Re:CU00542F Dibujar rombo diamante
Publicado por: Dimitar Stefanov en 07 de Julio 2016, 23:56
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. 
Título: Re:CU00542F Dibujar rombo diamante
Publicado por: pedro,, en 08 de Julio 2016, 09:36
Ok, entendí mal entonces.

Saludos.