Besoin d'aide pour un escalier - C - Programmation
Marsh Posté le 02-12-2009 à 13:32:15
désolé le code posé ce dessus était incomplet il manqué une ligne voici le bon code :
#include <stdio.h>
#include <stdlib.h>
int l,cptl,esp,cptesp,h,cpth,cptet,et,cptpal,pal,es,cptes;
int main()
{
printf("%s","entrez la valeur de la largeur d'une marche et la hauteur d'un etage et le nombre d'etage souhaite" );
scanf("%d%d%d",&l,&h,&es);
cptes=0;
while(cptes<es){
/*Faire un étage*/
cpth=1;
while(cpth<h+1){
esp=(cpth*(l-1));
/*largeur d'une marche*/
cptl=0;
while(cptl<l){
printf("%s","*" );
cptl=cptl+1;
}
printf("\n" );
cptesp=0;
while(cptesp<esp){
printf("%s"," " );
cptesp=cptesp+1;
}
cpth=cpth+1;
}
/*fin de l'étage*/
/*palier*/
pal=(l*2);
cptpal=0;
while(cptpal<pal){
printf("%s","*" );
cptpal=cptpal+1;
/*fin palier*/
}
printf("\n" );
cptes=cptes+1;
}
printf("\n" );
system("PAUSE" );
return 0;
}
Marsh Posté le 02-12-2009 à 16:39:17
Salut
en vrac:
utilise les balises code
Code :
|
est equivalent à
Code :
|
Code :
|
est equivalent à
Code :
|
Quels profs te font utiliser des variables globales?
Code :
|
berk, voici le résultat chez moi:
Citation : sh: PAUSE: command not found |
Bon pour répondre au problème, moi je stockerais dans une variable (locale ) appelée nbEspaces (par ex) le nombre d'espaces à afficher avant une marche/palier. A chaque marche j'ajouterais largeurMarche à cette variable et à chaque palier je lui ajouterais 2*largeurMarche.
Puis avant chaque affichage de marche/palier, j'aficherais nbEspaces espaces
En gros je pense que cela correspond à ta variable esp sauf qu'il faut en conserver sa valeur et simplement l'augmenter à chaque marche.
Marsh Posté le 02-12-2009 à 17:48:03
ptitchep a écrit :
est equivalent à
|
tant qu'à faire, autant utiliser puts, dans ce genre de cas, ou même putchar
Marsh Posté le 02-12-2009 à 19:09:23
putchar oui, mais puts ajoute un retour à la ligne.
Oui tu dois la "sortir de la boucle", elle ne doit pas être réinitialisée mais sa valeur doit augmenter constamment.
Marsh Posté le 02-12-2009 à 13:28:34
Voila je débute en C et j'aimerais construire un escalier de cette forme :
*****
*****
*****
*****
**********
*****
*****
*****
*****
explications : l'utilisateur peut choisir le nombre de marche voulu par d'étage voulu (nombre de marche par étage) le nombre d'étoile par marche ainsi que le nombre d'étage .
A chaque fin d'étage se trouve un palier qui fait 2 fois la longueur d'une marche. j'ai pratiquement reussi sauf que arrivé aux autres étages le décalage n'y est plus et mon second étage revient au début . Voici mon code :
#include <stdio.h>
#include <stdlib.h>
int l,cptl,esp,cptesp,h,cpth,cptet,et,cptpal,pal,es,cptes;
int main()
{
printf("%s","entrez la valeur de la largeur d'une marche et la hauteur d'un etage et le nombre d'etage souhaite" );
scanf("%d%d%d",&l,&h,&es);
/*répétition d'un étage*/
cptes=0;
while(cptes<es){
/*Faire un étage*/
cpth=1;
while(cpth<h+1){
esp=(cpth*(l-1));
/*largeur d'une marche*/
cptl=0;
while(cptl<l){
printf("%s","*" );
cptl=cptl+1;
}
printf("\n" );
cptesp=0;
while(cptesp<esp){
printf("%s"," " );
cptesp=cptesp+1;
}
cpth=cpth+1;
}
/*fin de l'étage*/
/*palier*/
pal=(l*2);
cptpal=0;
while(cptpal<pal){
printf("%s","*" );
cptpal=cptpal+1;
/*fin palier*/
}
cptes=cptes+1;
}
printf("\n" );
system("PAUSE" );
return 0;
}
je travail avec dev c++ et programme en c.
Merci d'avance de votre aide.