Besoin d un petit coup de pouce

Besoin d un petit coup de pouce - C++ - Programmation

Marsh Posté le 05-12-2004 à 13:35:41    

Salut a tous ,
 
Voilà j'ai un exos en c++ dans lequel il faut que j utilise un tableau et que j affiche les valeurs de se tableau.
 
Jusque la pas de souci , mais le probleme est que l'affichage doit se faire de la maniere suivante :
 
0     1     3
4     5     6
7     8     9....
 
Et donc c'est ce mode d'affichage qui me pose probleme. Je n'arrive pas a faire les tabulations et les saut de ligne afin que tous soit aligné.
 
Voila j avais un exo similaire avec un un triangle a afficher avec des étoiles maisje n'est pas reussi non plus.
 
Si quelqu un peut filer quelque tuyau pour avancer ca serait sympa ;)
( je precise que le programme s execute en console dos avec visual )


Message édité par grunk le 05-12-2004 à 13:37:00
Reply

Marsh Posté le 05-12-2004 à 13:35:41   

Reply

Marsh Posté le 05-12-2004 à 13:39:25    

retour à la ligne : '\n'
tabualtion : '\t'
 
apres une double boucle for et c parti ...


Message édité par Joel F le 05-12-2004 à 13:39:42
Reply

Marsh Posté le 05-12-2004 à 13:42:04    

d accord merci pour le \t , je connaissai pas.
Mais la double boucle for , je vois pas pourquoi ?

Reply

Marsh Posté le 05-12-2004 à 13:45:47    

ben tu cherches

Reply

Marsh Posté le 05-12-2004 à 13:48:10    

oki ;)  
je vous tiens au courant

Reply

Marsh Posté le 05-12-2004 à 16:30:12    

La double boucle for n'est pas forcement necessaire.
Je dis ca parceque, "au debut", c'est pas forcement simple.
 
a+

Reply

Marsh Posté le 05-12-2004 à 18:08:42    

Voilà ou j en suis :  

Code :
  1. #include <stdio.h>
  2. void main()
  3. {
  4. int i,l;
  5. int tab[10];
  6.  for(i=0;i<10;i++)
  7.  {
  8.   printf("entrez la valeur de tab[%d]:",i);
  9.   scanf("%d",&tab[i]);
  10.  }
  11.   printf("\n\n" );
  12.   printf("Valeur du Tableau et Adresse\n\n" );
  13.  for (l=0;l<3;l++)
  14.  {
  15.   printf("\n" );
  16.   for(i=0;i<10;i++)
  17.   {
  18.    printf("%d\t",i,tab[i]);
  19.   }
  20.  }
  21. }


 
J'affiche donc:  0   1   2   4  5...
                 0   1   2   3  4 ...
 
Hors jene voudrais afficher quze 3 charactere par ligne .
Comment faire ?
Un petit tuyau pour me faire avancé ?


Message édité par grunk le 05-12-2004 à 18:16:33

---------------

Reply

Marsh Posté le 05-12-2004 à 18:24:34    

Si j'étais toi, je ferais avec une seule boucle, et 2 si tu veux t'amuser apres.
 
 

Citation :


for(i=0;i<10;i++)
{
     printf("%d\t",i,tab[i]);
}


 
Donc ca va t'afficher 0 1 2 3 4 ...
A toi de faire en sorte de faire un printf("\n" ) toutes les 3 valeurs.
modulo, compteur, ...

Reply

Marsh Posté le 05-12-2004 à 18:26:54    

oki v essayé comme ca.
Et ca serait pas possible de faire une boucle while avec tant que i est diff de 3 j'affiche mes valeur et dès que i=3 je saute une ligne ?


---------------

Reply

Marsh Posté le 05-12-2004 à 18:34:15    

je sais pas trop où tu veux mettre ta boucle while mais
 
le probleme c'est que tu ne va sauter une ligne qu'une fois, lorsque i == 3

Reply

Marsh Posté le 05-12-2004 à 18:34:15   

Reply

Marsh Posté le 05-12-2004 à 18:35:09    

erf oui c bien le cas .
Bon je m'y remet :P


---------------

Reply

Marsh Posté le 05-12-2004 à 19:11:53    

Me revoila :P
bon j'ai opté pour la solution du modulo 3 :

Code :
  1. for(i=0;i<10;i++)
  2.   {
  3.    printf("%d\t",tab[i]);
  4.    l=l+1;
  5.    m=l%3;
  6.    if(m==0)
  7.     printf("\n" );
  8.    else;
  9.   }


Et ma foi ca fonctionne :)
Merci pour votre aide  :jap:


---------------

Reply

Marsh Posté le 05-12-2004 à 19:23:56    

ou sans variables
 

Code :
  1. for(i=0;i<10;i++)
  2. {
  3.      if (!(i%3))
  4.      printf("\n" );
  5.      printf("%d\t",i,tab[i]);
  6. }

Reply

Marsh Posté le 05-12-2004 à 19:27:25    

a ok je connaissai pas la syntaxe sans variable ;) merci !
Et y sert a quoi le "!" avant le modulo ?


---------------

Reply

Marsh Posté le 05-12-2004 à 19:32:11    

c'est un not
 
i%3 egal 0 quand i est multiple de 3
 
et pour passer dans le then il faut une valeur de test egal a 1, donc !0

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed