La meilleure façon de factoriser ce code C? CS50 - mario.c (plus)

voix
-3

Alors Im suivre le cours de CS50 et la résolution du mario.c plus de 1 pset

Je l'ai résolu en fait avec 3 pour les boucles, mais je voulais factoriser avec seulement deux boucles et je suis venu avec ce code qui donne la solution suivante pour « hauteur: 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);
    }
}

Jaimerais savoir si vous les gars peuvent me montrer une solution plus élégante car je pense que cela est trop ... répétitif.

Aussi, est-il possible d'utiliser le cas de commutateur au lieu de tant d'autre si? J'ai essayé de le faire mais le code n'a pas booléens pour j :(

Merci d'avance! :)

Créé 02/09/2018 à 05:38
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more