Triangle d'étoile avec langage c
Résolu/Fermé
sossos
-
9 nov. 2010 à 20:48
hiba125 Messages postés 5 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 8 avril 2017 - 8 avril 2017 à 06:49
hiba125 Messages postés 5 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 8 avril 2017 - 8 avril 2017 à 06:49
A voir également:
- Afficher un triangle rectangle formé d'étoiles de n lignes
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Dans cette présentation, sarah avait encadré directement le titre de certaines diapositives avant d'automatiser cette mise en forme pour tout le document. sur quelles diapositives avait-elle encadré directement le titre ? ✓ - Forum Bureautique
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
- Mise en forme conditionnelle excel - Guide
- Langage c dessiné un triangle ✓ - Forum C
1 réponse
mamiemando
Messages postés
32067
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 janvier 2023
7 535
9 nov. 2010 à 21:18
9 nov. 2010 à 21:18
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; }
9 nov. 2010 à 21:56
Pour simplifier pensez a utiliser deux boucles imbriques :
for (i=0;i<nombres de lignes ;i++)
for(j=0; j < i ; j++)
printf("*");
10 nov. 2010 à 00:03
8 avril 2017 à 06:49