IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Afficher un triangle isocèle


Sujet :

C

  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
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    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
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 599
    Points
    23 599
    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
    12 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 12 616
    Points : 30 833
    Points
    30 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 «Python»
    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
    Et on poste ses codes entre balises [code] et [/code]

+ 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