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 colonnes avec for


Sujet :

C

  1. #1
    Invité
    Invité(e)
    Par défaut Affichage colonnes avec for
    Bonjour à tous,

    Je suis tous nouveau sur ce forum et je viens vous demander quelques explications...

    En effet cela fait à peu près 2 semaines de que je suis mis à la programmation en C avec le Free-Book "Apprendre de C en 20H" de Shang et Berthomier et je dois avouer que c'est plutôt cool j'avance à mon rythme cependant certain corrigé d'exercice ne sont pas vraiment clair et aimant comprendre de bout en bout j'appel à l'aide celui ou celle qui voudra bien m'aider.

    J'en suis à un exercice où il faut écrire un programme qui affiche un code ASCII et le caractère correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    int i;
     
    for (i=32;i<=128;i++)
    	printf("%3d : %c\n",i,i);
     
    return 0;	
    }
    Jusque ici pas de problème, mais la suite de l'exercice demande d'afficher l'output de ce programme sur 8 colonnes pour une meilleurs visibilité et c'est la où ça se complique pour moi, voici le corrigé de cet exercice :

    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
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    int i;
    int j;
     
    for (i=4;i<16;i++) {
    	for (j=0; j<8; j++) {
    	printf("%3d : %c	",i*8+j,i*8+j);
    	}
    	printf("\n");
    	}	
    return 0;		
    }
    pourquoi partir de 4 pour aller jusqu'à 16 ?? après reflexion je me suis dit (128-32)/8=12 mais est-ce bien ce raisonnement ?

    ensuite il faudrait m'expliquer ce ...i*8+j,i*8+j); je ne pige pas du tout. Bon je suis sur je me noie dans une goutte d'eau mais la je sèche !

    Merci d'avance !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 15
    Points : 35
    Points
    35
    Par défaut
    A mon avis, il n'y a pas d'intérêt à compliquer (pour ne pas dire obfusquer) le code à ce point surtout s'il s'agit d'un livre destiné aux débutants. Bref, c'est juste une façon parmi d'autres d'accomplir la tâche demandée. L'auteur aurait pu faire quelque chose du genre :

    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
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    	int i;
    	int j;
     
    	for (i=32;i<=120;i+=8) {
    		for (j=0; j<8; j++) {
    			printf("%3d : %c	",i+j,i+j);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    Voire même :

    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
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    	int i, j;
     
    	for (i=32, j = 0;i<=128;i++, j++)
    	{
    		if(j % 8 == 0)
    			printf("\n");
    		printf("%3d : %c ",i,i);
    	}
     
    	return 0;	
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hassan. Voir le message
    A mon avis, il n'y a pas d'intérêt à compliquer (pour ne pas dire obfusquer) le code à ce point surtout s'il s'agit d'un livre destiné aux débutants. Bref, c'est juste une façon parmi d'autres d'accomplir la tâche demandée. L'auteur aurait pu faire quelque chose du genre :

    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
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    	int i;
    	int j;
     
    	for (i=32;i<=120;i+=8) {
    		for (j=0; j<8; j++) {
    			printf("%3d : %c	",i+j,i+j);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    Voire même :

    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
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main (void)
    {
    	int i, j;
     
    	for (i=32, j = 0;i<=128;i++, j++)
    	{
    		if(j % 8 == 0)
    			printf("\n");
    		printf("%3d : %c ",i,i);
    	}
     
    	return 0;	
    }
    OK merci j'ai compris avec ton exemple n°1

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

Discussions similaires

  1. Afficher le nombre de colonnes avec un for
    Par monlou dans le forum Langage
    Réponses: 2
    Dernier message: 18/11/2014, 20h54
  2. [Débutant] Probleme ComboBox 2 Colonnes avec String, Affichage Valeur TextBox
    Par superthx dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/09/2014, 10h29
  3. [MySQL] Tableau HTML - Affichage "en Colonne" avec BD
    Par pazair16 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/04/2012, 22h15
  4. Affichage Image sur n colonnes avec Crystal Report
    Par callo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/09/2009, 18h41
  5. [Spip] Faire un affichage en colonne avec 7 articles
    Par guy2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 19/07/2008, 18h23

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