Aquí podría ser tu PUBLICIDAD


La mejor manera de refactorizar el código C? CS50 - mario.c (más)

votos
-3

Así que estoy tomando el curso CS50 y resolver el mario.c más del conjunto de procesadores 1

De hecho, me lo resolvió con 3 bucles, pero quería refactorearlo con sólo 2 bucles y me encontré con este código que le da la siguiente solución para la altura: 5

Result:
    #  #
   ##  ##
  ###  ###
 ####  ####
#####  #####

#include <stdio.h>

int main(void)
{
   
    int side = 5;
    int max = side + 2;

    for (int i = 1 ; i <= side ; i++)
    {
      int j = 1;
      while(j != max+1)
      {
        if(j <= side-i)
        {
        printf( );
        j++;
        }
        else if(j > side-i && j < side+1)
        {
        printf(#);
        j++;
        }
        else if(j == side+1)
        {
        printf(  );
        j++;
        } 
        else 
        {
        printf(#);
        j++;
        }
      }
    max++;
    printf(\n);
    }
}

Id gustaría saber si ustedes me puede mostrar una solución más elegante ya que creo que esto es demasiado ... repetitivo.

Además, es posible utilizar el caso interruptor en lugar de tantos else if? Trató de hacerlo pero el código no tomó booleanos para j :(

¡Gracias por adelantado! :)

Publicado el 02/09/2018 a las 05:38
fuente por usuario Adolf
En otros idiomas...        العربية       


Aquí podría ser tu PUBLICIDAD