Triangle d'étoile avec langage c

Résolu/Fermé
sossos -  
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

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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"

    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;
    }
    8
    1. the F Messages postés 162 Statut Membre 13
       
      Salut
      Pour simplifier pensez a utiliser deux boucles imbriques :

      for (i=0;i<nombres de lignes ;i++)
      for(j=0; j < i ; j++)
      printf("*");
      0
    2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       
      Sauf que j'ai déjà parlé de cette approche en pseudo code pour laisser chercher sossos. En plus le code est faux car tu as oublié de gérer les retours chariots :-/
      0
    3. hiba125 Messages postés 6 Statut Membre
       
      merci
      0