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 :

Reproduire le resultat de deux boucles


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut Reproduire le resultat de deux boucles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int main()
    {
            int i=0,j=0,m;
     
            for (j=0; j<8; j++){
                    for (i=0; i<8; i++){
                            printf("%i\n%i\n",j,i);
                    }
            }
    }
    Comment je peux obtenir le meme resultat de ce code, mais en utilisant une seule variable quand j'utilise printf ? Ya-t-il pas moyen d'enregistrer ces valeurs (i et j) dans une variable 'm' de facon a ce que j'obtient le meme output en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(i=0; i<64; i++){
          printf("%i\n",m);
    }
    voici l'output du code original:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    0
    0
    0
    1
    0
    2
    0
    3
    0
    4
    0
    5
    0
    6
    0
    7
    1
    0
    1
    1
    1
    2
    1
    3
    1
    4
    1
    5
    1
    6
    1
    7
    2
    0
    2
    1
    2
    2
    2
    3
    2
    4
    2
    5
    2
    6
    2
    7
    3
    0
    3
    1
    3
    2
    3
    3
    3
    4
    3
    5
    3
    6
    3
    7
    4
    0
    4
    1
    4
    2
    4
    3
    4
    4
    4
    5
    4
    6
    4
    7
    5
    0
    5
    1
    5
    2
    5
    3
    5
    4
    5
    5
    5
    6
    5
    7
    6
    0
    6
    1
    6
    2
    6
    3
    6
    4
    6
    5
    6
    6
    6
    7
    7
    0
    7
    1
    7
    2
    7
    3
    7
    4
    7
    5
    7
    6
    7
    7
    En d'autres mot, mon but c'est de produire cet output en utilisant qu'une seule variable 'm'.

    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Une piste vers la soution? division, quotient, reste et modulo...

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut
    un exemple svp ?

  4. #4
    Membre éclairé
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0; i<64; i++){
          printf("%i\n%i\n", i/8, i%8 );
    }
    Bizarement, j'ai l'impression de faire l'exo à votre place

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut
    Bonjour
    merci pour les reponses.


    je suis a deux doigts de la solution.


    y aurait pas moyen d'inclure des conditions pour obtenir le meme resultat mais en appelant une seule fois le 'm' comme ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(i=0; i<64; i++){
          printf("%i\n",m);
    }
    PS; ce n'est pas du tout un exo...

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    Quelque chose comme ça alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int m;
    for(int i=0; i<64; i++){
       m = i % 2 ? i/8 : i%8;
       printf("%i\n",m);
    }

  7. #7
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut
    J'ai deja pense a ca, mais le probleme c'est qu'a ne s'incremente que toute les deux fois,

    au lieu d'avoir: 01020304... le code que tu as ecris donne, 020406...

    ca compte pas de 1 a 7
    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
    0
    0
    2
    0
    4
    0
    6
    0
    0
    1
    2
    1
    4
    1
    6
    1
    0

  8. #8
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut
    Ca saut les chiffres impairs

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 461
    Par défaut
    Citation Envoyé par virtuadrack Voir le message
    Ca saut les chiffres impairs
    Je crois bien que c'est volontaire. Fabllot a pratiquement résolu ton problème. Il faut que tu adaptes un tout petit peu l'expression qu'il t'a donné, mais on ne le fera plus à ta place.

    On peut savoir quel est l'objet de tout ceci ? Parce que, comme ça, ça ressemble quand même furieusement à un exercice scolaire…

  10. #10
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Je crois bien que c'est volontaire. Fabllot a pratiquement résolu ton problème. Il faut que tu adaptes un tout petit peu l'expression qu'il t'a donné, mais on ne le fera plus à ta place.
    d'abord j'ai demande a personne de le faire a ma place, quand je viens sur ce forum c'est pour des directions, ensuite, ce qu'a mis Fabllot est faux jy ai deja pense, relis ce que j'ai ecris.

    On peut savoir quel est l'objet de tout ceci ? Parce que, comme ça, ça ressemble quand même furieusement à un exercice scolaire…
    J'ai dit que c'est pas un exo...

    tu connais TinyOS ? tu connais le langage de programmation nesC ?? Tu connais wirless sensors programming ? Pour programmer un sensor device, il me faut une sequence de chiffres suivis d'une certaine maniere, et c'est faisable si une logique en C est développée.
    Tu crois qu'on enseigne ca a l'ecole ?

  11. #11
    Membre éclairé
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par défaut
    Citation Envoyé par virtuadrack Voir le message
    J'ai dit que c'est pas un exo...

    tu connais TinyOS ? tu connais le langage de programmation nesC ?? Tu connais wirless sensors programming ? Pour programmer un sensor device, il me faut une sequence de chiffres suivis d'une certaine maniere, et c'est faisable si une logique en C est développée.
    Tu crois qu'on enseigne ca a l'ecole ?
    Alors pourquoi est-ce que tu veux à tout prix complexifier ton code, et du coup le ralentir, alors que la solution que je t'ai proposée est:
    - Plus facile à lire, et donc à debugger pour ceux qui le maintiendront plus tard
    - Plus rapide à exécuter que de rajouter des tests conditionnels

    Enfin bon, moi je dis cela, je dis rien

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Je crois bien que c'est volontaire. Fabllot a pratiquement résolu ton problème.
    Ouais on va dire ça !

  13. #13
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 461
    Par défaut
    Bon. Allez, résolvons le problème. Je crois que ce que VirtualDrack recherche, c'est la notation octale :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
     
    int main (void)
    {
        int i;
     
        for (i=0;i<0100;++i) printf ("%02o\n",i);
     
        return 0;
    }

    Enlève le retour à la ligne « \n » si tu veux obtenir une série consécutive de chiffres.

  14. #14
    Membre éclairé
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par défaut
    Ah ouais, terrible je ne connaissais pas ça On peut faire la même chose avec d'autres bases ? Genre base 6 ou 16 par exemple ?

  15. #15
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Tu peux faire ça avec 3 bases :

    - La base octale (8) -> formateur %o
    - La base décimale (10) -> formateur %d
    - La base hexadécimale (16) -> formateur %x (ou %X)

Discussions similaires

  1. Sortire de deux boucle en une foi
    Par mcdonald dans le forum Général Python
    Réponses: 5
    Dernier message: 08/08/2006, 15h11
  2. Batch - Deux boucle For imbriquées plus un FC
    Par Lorponos dans le forum Windows
    Réponses: 17
    Dernier message: 27/07/2006, 14h58
  3. Reproduire des controles avec une boucle
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/06/2006, 11h46
  4. comment quitter deux boucles for?
    Par davmaster62 dans le forum Général Python
    Réponses: 2
    Dernier message: 08/03/2006, 00h16
  5. division des resultats de deux requetes
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 14/10/2005, 10h42

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