Besoin aide programmation c
Résolu
Bonjour,
j'essaye de faire un programme qui affiche le meme caractere sur n lignes et en pyramides, l'utilisateur pouvant choisir le nombre de lignes. D ela doit donnes quelque chose qomme ceci:
si n=2
....@
..@ @
si n =4
......@
....@ @
..@ @ @
@ @ @ @
etc... avec les ... étants des espaces
seulement je bloque, comment faire pour afficher les meme caracteres d'affilée? en incrémentant? ça risque pas de changer le caractere?
merci pour vos reponses<code>Configuration: windows xp sp2
mozilla 3.0.9
IE8
j'essaye de faire un programme qui affiche le meme caractere sur n lignes et en pyramides, l'utilisateur pouvant choisir le nombre de lignes. D ela doit donnes quelque chose qomme ceci:
si n=2
....@
..@ @
si n =4
......@
....@ @
..@ @ @
@ @ @ @
etc... avec les ... étants des espaces
seulement je bloque, comment faire pour afficher les meme caracteres d'affilée? en incrémentant? ça risque pas de changer le caractere?
merci pour vos reponses<code>Configuration: windows xp sp2
mozilla 3.0.9
IE8
7 réponses
-
KONNICHIWA,
voici une proposition pour votre problème,
var i, j, k : entier 0 - début 1 - ecrire("donnez le nombre de lignes :") lire(n) 2 - pour i=0 à n faire pour j=0 à (n-1-i) faire ecrire(" ") fin pour pour k=0 à (n-j) faire ecrire("@") fin pour fin pour 3 - fin prog
traduit ça en langage C, et ca va marcher. -
merci beaucoup mais j'ai un petit problème: la fenêtre reste noire et les curseur descend après avoir entré le nombre puis s'arrette. Je pense qu'il manque quelque chose dans les parenthèses du pour mais je ne sais pas quoi. voici le code #include<stdio.h> #include<math.h> main() { int i,j,k,n; printf("nb de lignes?"); scanf("%i", &n); for (i=0; i<n; ) { for (j=0; j<= n-1-i; ) { printf(" "); } for ( k=0; k < n-j;) { printf("@"); } } system ("pause"); } <code></code> -
scanf("%i", &n);
Deja là: ce ne serait pas plutôt "%d" ?
Mais bon moi, c'est le genre de petit prog que je fais en 4 lignes de code en python. -
voici la correction :
#include<stdio.h> void main(){ int n; printf("Donnez le nombre de ligne :"); scanf("%i",&n); for(int i=0;i<n;i++){ for(int j=0;j<(n-i-1);j++){ printf(" "); } for(int k=0;k<n-j;k++){ printf("@"); } printf("\n"); } getchar(); } -
voici la correction :
a= input('choisissez le nombre de ligne\n') i=0 while i<=a: print '@'*i i=i+1 input()
J'adore python -
merci pour vos réponses, j'ai pu avoir un bon programme. pour les curieux:$
main()
{
int i,j,n;
printf("nombre de lignes?\n");
scanf("%i", &n);
for (i=0; i<=n; i+=1)
{
for (j=0; j<=n-i-1; j=j+1) printf(" ");
for(j=0; j<i*2-1; j=j+1)
{
printf("@");
}
printf("\n");
}
system("pause");
}
merci a tous ;) -
Contributeurmerci de penser à passer vos sujet en résolu ;)