Triangle d'étoile avec langage c
Résolu/Fermé
sossos
-
hiba125 Messages postés 6 Statut Membre -
hiba125 Messages postés 6 Statut Membre -
Bonjour,
s'il vous plait je veux savoir comment je peux obtenir un triangle d'étoile comme le suivante :
*
**
***
****
avec language c
et merci
s'il vous plait je veux savoir comment je peux obtenir un triangle d'étoile comme le suivante :
*
**
***
****
avec language c
et merci
A voir également:
- Programme qui affiche triangle d'étoiles c++
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Comment fermer un programme qui ne répond pas - Guide
- Mettre en veille un programme - Guide
1 réponse
Plutôt que de te donner la solution directement je te propose de te donner une ligne directrice et on te guidera si tu bloques.
Commence par raisonner "en français"
Soit :
Soit encore :
Il ne reste plus qu'à traduire ça en C.
Autre approche :
La complexité algorithmique est meilleur (O(n) au lieu de O(n^2)) mais ça force à stocker en mémoire une chaîne (celle de la ligne à écrire) et à savoir faire une allocation dynamique pour allouer un buffer de taille n.
Vu l'exercice je doute que ton prof attende ce genre de solution et tu pourras difficilement la "repomper" directement tout en restant crédible.
Commence par raisonner "en français"
Afficher 1 étoile, puis passer à la ligne Afficher 2 étoiles, puis passer à la ligne ... Afficher n étoiles, puis passer à la ligne
Soit :
Pour i allant de 1 à n compris Afficher i étoiles Passer à la ligne Fin pour
Soit encore :
Pour i allant de 1 à n compris
Pour j allant de 1 à i compris
Afficher une étoile
Fin pour
Passer à la ligne
Fin pour
Il ne reste plus qu'à traduire ça en C.
Autre approche :
s = "" Pour i allant de 1 à n compris Ajouter une étoile dans s Afficher s Fin pour
La complexité algorithmique est meilleur (O(n) au lieu de O(n^2)) mais ça force à stocker en mémoire une chaîne (celle de la ligne à écrire) et à savoir faire une allocation dynamique pour allouer un buffer de taille n.
Vu l'exercice je doute que ton prof attende ce genre de solution et tu pourras difficilement la "repomper" directement tout en restant crédible.
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned int i, n = 16;
char *buffer = (char *)calloc(sizeof(char), n);
for(i = 0; i < n; ++i){
buffer[i] = '*';
printf("%s\n",buffer);
}
free(buffer);
return 0;
}
Pour simplifier pensez a utiliser deux boucles imbriques :
for (i=0;i<nombres de lignes ;i++)
for(j=0; j < i ; j++)
printf("*");