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 :

Affichage d'un rectangle de X


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut Affichage d'un rectangle de X
    Bonjour,

    Je débute dans la programmation de C et voila ce que j'essai de faire:

    - l'utilisateur rentre 2 nombres;
    et je dois avoir une forme de carré ou une autre forme;

    voici un petit exemple:

    nombre 4 et 4 ou bien 2 et 4
    XXXX XXXX
    XXXX XXXX
    XXXX
    XXXX

    voici ce que j'ai fait mais qui est faux:

    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
    #include <stdio.h>
     
    int main()
    {
        int colonne, nombre;
        scanf("%d%d", &colonne, &nombre);
        while (colonne > 0 && nombre > 0)
        {
            printf("X\n");
            printf("X");
            colonne--;
            nombre--;
        }
        return 0;
    }
    merci bien

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Par défaut
    Bonjour,

    Tout d'abord, il faut que tu utilises les balises "codes". Voici ton code :

    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
     #include <stdio.h>
     
    int main()
    {
        int colonne, nombre;
        scanf("%d%d", &colonne, &nombre);
        while (colonne > 0 && nombre > 0)
        {
            printf("X\n");
            printf("X");
            colonne--;
            nombre--;
        }
        return 0;
    }
    Pour ton problème, petit indice : utilise deux boucles imbriquées...

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    il faut que tu affiches ligne par ligne ET à chaque ligne affichée il faut que tu affiches le caractere X le nombre de fois désirées. essaie de traduire ça en forme de boucle (comme dit pus haut 2 boucles imbriquées)

  4. #4
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    merci de vos réponses, je teste ca tout de suite.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    voici ce que j'ai essayé mais en vain, un petit changement et rien d'autre.

    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
     
    #include <stdio.h>
    int main()
    {
        int colonne, nombre;
        scanf("%d%d", &colonne, &nombre);
        while (colonne > 0)
            {
                printf("X");
                colonne--;
                while (nombre > 0)
                {
                    printf("X\n");
                    nombre--;
                }
            }
        return 0;
    }
    Est-ce c'est bien "while" que je dois utilisé pour arriver à mon but ?
    pourriez-vous m'expliquer en schéma s'il vous plait, car là c'est vraiment difficile et je n'ai aucune idée.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par ayhan
    voici ce que j'ai essayé mais en vain, un petit changement et rien d'autre.

    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
     
    #include <stdio.h>
    int main()
    {
        int colonne, nombre;
        scanf("%d%d", &colonne, &nombre);
        while (colonne > 0)
            {
                printf("X");
                colonne--;
                while (nombre > 0)
                {
                    printf("X\n");
                    nombre--;
                }
            }
        return 0;
    }
    Est-ce c'est bien "while" que je dois utilisé pour arriver à mon but ?
    pourriez-vous m'expliquer en schéma s'il vous plait, car là c'est vraiment difficile et je n'ai aucune idée.
    déjà tu connais le nombre de répétitions, il vaut mieux utiliser une boucle for quand on connait le nombre de répétitions

    il te faut d'abord une boucle for pour passer d'une ligne à l'autre, et à l'intérieur de cette boucle for il te faut une 2ème boucle for pour afficher les colonnes (c'est à dire afficher les x)
    une fois que tu auras fini d'afficher une ligne (c'est à dire tous les X de la ligne) c'est à ce moment là que tu pourras faire un retour à la ligne pour commencer à afficher la ligne suivante.

  7. #7
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Tu dois utiliser deux boucles, for ou while, cela revient au même. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (i = 0; i <nblignes; i++){
      for (j =0; j<nbcolonnes; j++){
        printf("X");
      }
      printf("\n");
    }

  8. #8
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Jusqu'à maintenant j'ai appris à faire la boucle avec "while" et pour le "for", je suis pas encore arrivé à ce chapitre. Pourrais-je avoir la solution avec la boucle "while" s'il vous plait ?

  9. #9
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    For et while sont équivalents

    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i =0;
    while(i<n){
      ....
      i++;
    }

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    wal,
    Citation Envoyé par ayhan
    Jusqu'à maintenant j'ai appris à faire la boucle avec "while" et pour le "for", je suis pas encore arrivé à ce chapitre. Pourrais-je avoir la solution avec la boucle "while" s'il vous plait ?
    Comme quelqu'un te l'a déjà dit, tu connais le nombre de tours à faire dans tes boucles, et dans ce cas, on utilise plutôt une boucle for.

    Mais tu peux bien sûr le faire avec une boucle while, rien ne l'interdit.

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par ayhan
    Jusqu'à maintenant j'ai appris à faire la boucle avec "while" et pour le "for", je suis pas encore arrivé à ce chapitre. Pourrais-je avoir la solution avec la boucle "while" s'il vous plait ?
    perso pour t'y retrouver plus facilement je changerais le nom de tes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int nbre_lignes;
    int nbre_colonnes;

    le problème dans ton programme c'est que quand tu décrementes ton nombre de colonnes au bout d'un moment il est égale à zero, quand tu vas passer à afficher la ligne suivante, ton nombre de colonne est = 0 donc tu as perdu cette information, à toi de voir comment faire pour régler ce problème.

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

Discussions similaires

  1. Pas d'affichage pour un rectangle
    Par Avatar36 dans le forum Qt Quick
    Réponses: 2
    Dernier message: 29/09/2014, 01h11
  2. Réponses: 2
    Dernier message: 18/02/2009, 12h54
  3. [FPDF] Affichage d'un rectangle
    Par drogba72 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/06/2008, 11h43
  4. Réponses: 7
    Dernier message: 03/02/2008, 14h08
  5. affichage de plusieurs rectangles
    Par lechewal dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 02/05/2006, 18h52

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