Dessiner un rectangle (mais aussi un carré) en mode console langage C

Messages postés
3
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
9 avril 2009
- - Dernière réponse : DeathRavage
Messages postés
3
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
9 avril 2009
- 9 avril 2009 à 18:54
Problème : J'ai un soucis à propos de la prise en compte de la taille de ma verticale, elle n'est pas prise en compte. J'ai essayé d'arranger les choses mais rien ne s'arrange. Ayant pas mal de lacune j'espère que vous pourrez m'éclairer. J'ai repris un code déja présent sur vote site et je m'en suis servis afin de pouvoir saisir la taille du rectangle et faire en sorte qu'elle soient prise en compte lors de l'affichage.

Source :

     #include <stdio.h>
   
     void main()
     {
     int hauteur;
     int largeur;
     int increment=0;
     int increment2=0;
     int i=0;

     do
     {
     
     printf("Entrez la hauteur du rectangle : ");
     scanf("%d",&hauteur);

     printf("Entrez la largeur du rectangle : ");
     scanf("%d",&largeur);

    /* Clean */

     /*Affichage du caractère ascii situé représentant le coin en haut à gauche du rectangle.*/
     printf("\xDA");
     
     /*Ligne du haut entre les 2 coins haut gauche et haut droite  */
     for (increment=0 ; increment <= (largeur-2) ; increment++)
     printf("\xC4");

     /*Affichage du caractère ascii situé représentant le coin en haut à droite du rectangle.*/
     printf("\xBF\n");
     
     
     /* Clean Mais verticale qui déconne et peut être inbougeable*/

     /*Ligne verticale de gauche entre les 2 crochets */
     for (increment=0 ;  increment < hauteur ; increment++);
     printf("\xB3",hauteur);
     
     /*Espace Ligne droite verticale.Les espaces ++ pour increment2 à 0 et incrément2 < incremente.*/
     for (increment2=0 ; increment2 < (increment) ; increment2++);
     printf("\x20");
     
      /*Ligne verticale de droite entre les 2 crochets*/
     for (increment=0 ;  increment < hauteur ; increment++);
     printf("\xB3\n",hauteur);
   
     /* CLEAN */

     /*Affichage du code ascii correspondant au coin en bas à gauche*/
     printf("\xC0"); 
     
     /*Ligne Entre les 2 coins du bas*/
     for (increment=0 ; increment <= (largeur-2) ; increment++)
     printf("\xC4");
    
     /*Affichage du code ascii correspondant au coin en bas à droite.*/
     printf("\xD9\n");

     printf("\nFaites 1 pour recommencer et 2 pour quitter : ");
     scanf("%d",&i);
     }
     while(i != 2);   
     }
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
7
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 avril 2009
5
4
Merci
Bonjour DeathRavage
Voici ton programme corrigé, tu n'as qu'à remplacer mes caractères par tes caractères ASCI
Bonne journée!!!!

#include <stdio.h>
void main()
{
    int hauteur;
    int largeur;
   int increment,increment2;
    int k;
     printf("Entrer la largeur du Rectangle :");
    scanf("%d",&largeur); 
     printf("Entrer la hauteur du Rectangle :");
    scanf("%d",&hauteur);
    do{ 
       printf("\n");
      for (increment=1;increment<=largeur;increment++){
            printf("*");
        }
         printf("\n");
      for (increment=2;increment<hauteur;increment++){
          printf("*");
         for (increment2=2;increment2<largeur;increment2++){
                printf(" ");
            }
         printf("*");
         printf("\n");
      }
      for (increment=1;increment<=largeur;increment++){
            printf("*");
        }
      printf("\n");
  printf("\nFaites 1 pour recommencer et 2 pour quitter : ");
  scanf("%d",&k);
  }while(k != 2);
}

Dire « Merci » 4

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de marcbrest
Messages postés
7
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 avril 2009
5
0
Merci
[../auteur/DEATHRAVAGE/1654864.aspx
]Bonjour Deathravage.

Je ne sais pas si ton erreur vient de là mais après ton for :

/* Clean Mais verticale qui déconne et peut être inbougeable*/

/*Ligne verticale de gauche entre les 2 crochets */
     for (increment=0 ;  increment < hauteur ; increment++);
     printf("\xB3",hauteur);

tu as un ";" le for va donc boucler sur lui même, et c'est une fois sa boucle finie que ton printf sera pris en compte. Tu fais aussi ça pour les 2 for qui suivent

En espérant que cela puisse résoudre quelque chose.
Commenter la réponse de marcbrest
Messages postés
3
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
9 avril 2009
0
Merci
Je te remerci cette fois la hauteur est prise en compte. D'autre soucis sont malheureusement apparu. Notament la verticale droie qui apparait plusieur fois en petite taille qui ne colle pas avec les 2 coins. Voici Un Screen
http://www.servimg.com/image_preview.php?i=38&u=12936547
Commenter la réponse de DeathRavage
Messages postés
7
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 avril 2009
5
0
Merci
Pourrais-tu poster ton programme corrigé s'il te plait?

Commenter la réponse de marcbrest
Messages postés
3
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
9 avril 2009
0
Merci
Je te remerci beaucoup marcbrest et je m'excuse de ne pas avoir mit le programme corrigé plus tot. J'ai eu pas mal de boulot ces derniers jours avec les interro. Encore une fois merci.
Commenter la réponse de DeathRavage