Urgent : passer de for a while ?
dr hisoka
Messages postés
83
Statut
Membre
-
dr hisoka Messages postés 83 Statut Membre -
dr hisoka Messages postés 83 Statut Membre -
salut tous le monde
je vx savoir comment passer de for a while
par exemple
ce programme qui affiche la fleche derigé en haut
si en tape 3
ça donne
..*
.**
***
..*
..*
..*
voici le code source
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int i;
int j;
int n=-1;
int nbCaractereMaxLigne;
do
{
printf("Entrez le nombre n : ");
fflush(stdin);
scanf("%d",&n);
}while(n<0 && n>40); //plus de 80 caractere = bug affichage
nbCaractereMaxLigne=n+(n-1);
//Partie triangulaire
for(i=0;i<n;i++)
{
//nombre d'espaces
for(j=nbCaractereMaxLigne-(i+n);j>0;j--)
{
printf(" ");
}
//moitié gauche du triangle
for(j=0;j<=i;j++)
{
printf("*");
}
//partie droite du triangle
for(j=i;j>0;j--)
{
printf("*");
}
printf("\n");
}
//Partie queue de fleche
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
printf(" ");
}
printf("*\n");
}
system("pause");
return 0;
}
cmm le faire avec while ???
je vx savoir comment passer de for a while
par exemple
ce programme qui affiche la fleche derigé en haut
si en tape 3
ça donne
..*
.**
***
..*
..*
..*
voici le code source
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int i;
int j;
int n=-1;
int nbCaractereMaxLigne;
do
{
printf("Entrez le nombre n : ");
fflush(stdin);
scanf("%d",&n);
}while(n<0 && n>40); //plus de 80 caractere = bug affichage
nbCaractereMaxLigne=n+(n-1);
//Partie triangulaire
for(i=0;i<n;i++)
{
//nombre d'espaces
for(j=nbCaractereMaxLigne-(i+n);j>0;j--)
{
printf(" ");
}
//moitié gauche du triangle
for(j=0;j<=i;j++)
{
printf("*");
}
//partie droite du triangle
for(j=i;j>0;j--)
{
printf("*");
}
printf("\n");
}
//Partie queue de fleche
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
printf(" ");
}
printf("*\n");
}
system("pause");
return 0;
}
cmm le faire avec while ???
3 réponses
Salut
je toujours aussi mauvais en C, mais là je vais pouvoir t'aider.
Le for en C s'écrit souvent for(<initialisation> ; <test-arret> ; <incrément> ) { instruction(s); }
sa transposition en while est <initialisation> ; while( !<test-arret>) { instruction(s); <incrément> ; }
Attention toutefois pour les for complexes avec plusieurs affectations, tests multiples et expressions complexes et autres joyeusetés.
donc ok pour traduire un for( i=0 ; i<=10; i++) mais étudie bien les autres cas que tu voudrais transposer
je toujours aussi mauvais en C, mais là je vais pouvoir t'aider.
Le for en C s'écrit souvent for(<initialisation> ; <test-arret> ; <incrément> ) { instruction(s); }
sa transposition en while est <initialisation> ; while( !<test-arret>) { instruction(s); <incrément> ; }
Attention toutefois pour les for complexes avec plusieurs affectations, tests multiples et expressions complexes et autres joyeusetés.
donc ok pour traduire un for( i=0 ; i<=10; i++) mais étudie bien les autres cas que tu voudrais transposer