Hola, llevo un par de dias programando en C, he empezado a utilizar c++ builder porque en clase nos han pedido que nos vayamos familiarizando.
He conseguido hacer todas las figuras que me pedian hacer en pseudocodigo en el c++ builder y acabo de hacer el rombo pero me gustaria saber si se puede simplificar mas el codigo.
Yo he conseguido sacarlo haciendolo de esta manera.
Código C:
Ver original#include<stdio.h>
#include<conio.h>
void main()
{ int nl,i,j,h,k,a,c1,c2;
printf("Dame un numero de lineas");
//Rombo exacto
if(nl>=7)
{
while(nl>=7)
{
for(i=1;i<=4;i++)
{
for(j=3;j>=i;j--)
{
}
for(h=1;h<=i;h++)
{
}
for(k=1;k<i;k++)
{
}
for(j=4;j>i;j--)
{
}
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
{
}
for(h=3;h>=i;h--)
{
}
for(k=2;k>=i;k--)
{
}
for(j=1;j<=i;j++)
{
}
}
nl=nl-7;
}
}
//Rombo no exacto
if (nl<7)
{
c1=4;
if(c1<nl)
{
for(i=1;i<=c1;i++)
{
for(j=3;j>=i;j--)
{
}
for(h=1;h<=i;h++)
{
}
for(k=1;k<i;k++)
{
}
for(j=4;j>i;j--)
{
}
}
c2=nl-c1;
}
else
{
for(i=1;i<=nl;i++)
{
for(j=3;j>=i;j--)
{
}
for(h=1;h<=i;h++)
{
}
for(k=1;k<i;k++)
{
}
for(j=4;j>i;j--)
{
}
}
c2=nl-c1;
}
if(c2>0)
{
for(i=1;i<=c2;i++)
{
for(j=1;j<=i;j++)
{
}
for(h=3;h>=i;h--)
{
}
for(k=2;k>=i;k--)
{
}
for(j=1;j<=i;j++)
{
}
}
}
}
}
Lo que me piden es hacer un rombo con un numero máximo de 7 lineas, el dibujo seria asi:
- - - * - - -
- - * * * - -
- * * * * * -
* * * * * * *
- * * * * * -
- - * * * - -
- - - * - - -
Lo que yo he entendido del ejercicio es que si meto numero de lineas 8 el rombo volveria a empezar pero solo dibujando la primera linea, y asi si metiera 9, o 10, pues dibujaria otras lineas mas.
A ver si alguien saber hacerlo evitando usar el while, aunque nose si es imprescindible, voy un poco adelantado en clase y nose si exactamente me pedian eso o simplemente dibujar 1 rombo, pero ya que he conseguido sacarlo a ver si se puede depurar un poco.
Un saludo y gracias.