Dessiner un rectangle (mais aussi un carré) en mode console langage C
DeathRavage
Messages postés3Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention 9 avril 2009
-
7 avril 2009 à 11:47
DeathRavage
Messages postés3Date d'inscriptionmardi 7 avril 2009StatutMembreDerniè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);
}
marcbrest
Messages postés7Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention 9 avril 20095 9 avril 2009 à 13:59
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);
}
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.
DeathRavage
Messages postés3Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention 9 avril 2009 8 avril 2009 à 20:09
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
DeathRavage
Messages postés3Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention 9 avril 2009 9 avril 2009 à 18:54
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.