1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 25
    Points : 27
    Points
    27

    Par défaut Afficher un triangle isocèle

    Salut, je suis débutant en langage C et je voudrais votre aide avec un code qui affiche un triangle isocèle de hauteur n (saisi au clavier), de la
    manière suivante :
    *
    ***
    *****
    *******
    ********* exemple pour n=5

    pour la saisie de n c'est bon, mais pour l'affichage selon la valeur de n comment faire pour afficher le caractère * n fois avec une itération de i+2 en initialisant i=1 ?

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    21 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 21 257
    Points : 138 981
    Points
    138 981
    Billets dans le blog
    5

    Par défaut

    Bonjour,

    Montrez nous votre code actuel et dites où cela bloque.
    Sinon, faudra lire un cours de C : http://c.developpez.com/cours/ et utiliser une boucle for.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 25
    Points : 27
    Points
    27

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        int x,i;
        printf("\n");
        do
        {
         printf(" donner un nombre entier : \n ");
         scanf("%d",&x);
        }
        while (x<1);
     
        for(i=1;i<=x;i+2)
         {
          printf(" * \n ");
         }
     
        return 0;
    }
    pour ce code il affiche le caractère * imbriqué l'une sous l'autre à façon illimité : je ferme l'éditeur de l'invite de commande manuellement avec la souris pour forcer le stop de l'exécution de programme !!! de plus quelle est l'astuce qui permet d'afficher le "*" ième fois selon la valeur de i ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        int x,i;
        char j;
     
        printf("\n");
        do
        {
         printf(" donner un nombre entier \n ");
         scanf("%d",&x);
        }
        while (x<1);
        j='*';
        for(i=1;i<=x;i+2)
         {
          printf(" %c \n ",j*i);
         }
     
        return 0;
    }
    j'ai modifié le programme : j'ai déclaré une variable de type char dont le contenu est le '*' puis selon la valeur de x=4 par exemple il sera afficher 1 3 5 7 le caracère * mais helas ! le programme affiche d'une manière illimité et le compilateur (code blocks) m'indique devant la ligne de la boucle FOR : statement no effect = aucun effet ?

  4. #4
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    6 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 6 641
    Points : 20 265
    Points
    20 265

    Par défaut

    Bonjour,

    Il ne faut pas écrire :

    … mais :

    … ou plus simplement :

    Autrement, « i+2 » est une expression valide et évaluée par le programme, mais qui n'implique aucune affectation. La variable n'est donc jamais mise à jour et garde en permanence sa valeur initiale, d'où l'affichage illimité.

    Pour le reste, tu as le droit d'imbriquer une boucle dans une autre. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        int x,y;
     
        for (x=0;x<5;x++)
        {
           for (y=0;y<5;y++)
           {
                printf ("x=%d et y=%d\n",x,y);
           }
        }
    Ici, la boucle x va répéter cinq fois son contenu, lequel contient une boucle y qui se répete elle-même cinq fois. Ce programme va donc afficher vingt-cinq lignes en tout.

    Tu peux te servir de cette possibilité pour écrire les n lignes formant ton triange, et tu as le droit d'utiliser l'indice de la première boucle dans la seconde pour savoir quelle longueur doit mesurer chacune d'entre elles.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 25
    Points : 27
    Points
    27

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        int x,i,k;
     
        printf("\n ");
        do
        {
         printf(" donner un nombre entier \n ");
         scanf("%d",&x);
        }
        while (x<1);
        printf("\n ");
        k=1;
        for(i=1;i<=x;i++)
        {
         while(k<=2*i-1)
         {
          printf("*");
          k++;
         }
         k=1;
         printf(" \n ");
        }
        for(i=1;i<=x;i++)
        {
         for(k=1;k<=2*i-1;k++)
         {
          printf("*");
         }
         printf(" \n ");
        }
        return 0;
    }
    et voilà la solution !!! avec la boucle While imbriquée dans for et puis 2 boucles for imbriquées !! merci admin pour votre conseil d'affectation je ne le sait pas d'avance !!


  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 537
    Points : 14 833
    Points
    14 833
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par hannibal007 Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        k=1;
        for(i=1;i<=x;i++)
        {
         while(k<=2*i-1)
         {
          printf("*");
          k++;
         }
         k=1;
         printf(" \n ");
        }
    Bonjour
    Pourquoi mettre 2 fois l'instruction k=1 ???
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for(i=1;i<=x;i++)
    {
        k=1;
        while(k<=2*i-1)
        {
            printf("*");
            k++;
        }
        printf(" \n ");
    }
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site


    Mes voeux: Que les puces d'un millier de chiens galeux infestent le cul de celui qui vous gâchera une seule seconde de votre année 2017, et que les bras de cet abruti deviennent trop courts pour qu'il ne puisse jamais se le gratter...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Comment afficher un triangle isocèle formé de N lignes d'étoiles ?
    Par xmustax dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 13/05/2008, 18h50
  2. afficher un triangle
    Par jalilc dans le forum C
    Réponses: 13
    Dernier message: 21/10/2006, 13h16
  3. Afficher un triangle avec OpenGL
    Par Premium dans le forum OpenGL
    Réponses: 19
    Dernier message: 19/10/2006, 10h06
  4. [C++.NET][DX9] pas moyen d'afficher un triangle
    Par NicolasG dans le forum DirectX
    Réponses: 13
    Dernier message: 02/01/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo