Programme en C

Moustiquet Messages postés 254 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
printf("\n"); 
getchar(); 
return resultat; 
} 
void afficher (int tableau [], int nbElem, int debut, int fin)
{  
     int i;
     printf ("liste des %d resultats:",debut, fin);
     for (i=0; i<nbElem; i++)
       if( i<debut || i >= nbElem-fin)
       printf(" i tableau[i]");
       else
       if (i==debut)
       printf("%4d) ect...\n", i);
       printf("\n");
       }
int main() 
{ 
     int resultat;
     int i;
     char reponse;
     int tab[10]; 
     printf("Lancer le de dix foix:\n");   
    srand(time(NULL));
do {   for( i=0;i<10;i++)
    resultat=lancerDe(3);
        tab[i]=1+ (int) (rand()%6);
      }while (tolower(reponse)=='o');
      printf("Voulez-vous jouer une autre partie: o/n",reponse);
 
 
getchar(); 
return (0); 
}

Je vais essayer d'être clair. Dans ce programme j'ai mes resultats d'un lancement de dé aleatoire de 10 coups.
Je me demande comment je peut réafficher les résultats dans le tableau pour que je puisse manipuler ces résultat comme trier, afficher
un élément du tableau..ect?Il y a quelque chose que je ne saisie pas.
Configuration: SustemeMicosoft Windows version 5.1.2600 Srevive 2 Processeurx86 Family 15 modele4 BiosPhoenix Tech memoire physique totale 512

4 réponses

  1. nobie-cs Messages postés 157 Statut Membre 17
     
    j'ai pas trop bien compris ton programme :) mais bon c'est pas trop grave
    pour affiche un élément du tableau il suffit de connaitre son indice ex : printf("%d",tableau[indice]);
    pour afficher tout le tableau

    for( i=0;i<nbElem;i++)
           printf("%d",tableau[i]);
          }
    
    0
  2. Le concombre démasqué
     
    Bonjour,

    1. tu définis une fonction Afficher() mais tu ne t'en sers pas (ou tu ne t'en sers plus)
    2. dans cette fonction, tu affiches un texte et une variable mais tu fournis deux variable
    3. dans main(), tu utilises une fonction lancerDe() inexistante (à moins que ce soit elle qui ait été tronquée en début de post)

    ensuite, essaie de te décider sur une présentation de ta programmation pour toi et ceux à qui tu demandes un peu d'aide s'y retrouvent rapidement (et ainsi éviter de passer bcp de temps à essayer de comprendre à quoi ça sert).

    j'aurais aussi tendance à te conseiller d'utiliser systématiquement les accolades ouvrantes et fermantes derrière les for, if et else. Ça ne coûte pas grand chose de les mettre et ça permet de repérer rapidement ce qui doit s'exécuter plusieurs fois dans une boucle for(), ou de bien délimiter ce qui est exécuté après le if ou le else. Et là où c'est le confort, c'est lorsque tu veux ajouter une instruction au corps de la boucle, ou du if ou du else

    ex:
    for( i = 0 ; i < 10 ; i++ )
      fairececi();
      fairecela();
    => fairececi() est appelé 10 fois, fairecela() une seule!
    for( i = 0 ; i < 10 ; i++ )
      {
      fairececi();
      fairecela();
      }
    => fairececi() est appelé 10 fois, fairecela() 10 fois aussi !
    nota: je cause de ça parce que la présentation me le laisse penser

    et finalement, j'aurais tendance à te conseiller de ne pas courir plus vite que la musique, de bien assimiler une instruction avant de passer à la suivante, tu n'en progresseras que plus vite.

    par exemple : apprendre à écrire
    printf ("liste des %d resultats:", debut + nbElem - fin + 1); ou
    printf ("liste des %d premiers et %d derniers resultats:",debut, nbElem-fin+1); au lieu de
    printf ("liste des %d resultats:",debut, fin);

    ou alors
    printf("%dème tirage: %d", i, tableau[i]); au lieu de
    printf(" i tableau[i]");

    et ensuite à compter
    /* tirage */
    for( i = 0 ; i < 10 ; i++)
    {
        resultat = lancerDe(3);
        tab[i] = resultat;
    }
    /* affichage */
    for( i = 0 ; i < 10 ; i++)
    {
        printf("lancer n° %d : %d", i, tab[i]);
        if(i = 5)
        {
            printf("\n");
        }
    }
    0
    1. Le concombre démasqué
       
      tsss il fallait écrire : if( i == 5)
      0
  3. Winfly Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
     
    Voici un example tirer de MSDN que j'ai modifier avec la boucle et la question :

    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    
    void main(void)
    {
       int i;
    
       /* Seed the random-number generator with current time so that
           the numbers will be different every time we run.  */
    
       srand((unsigned)time(NULL));
    
       do
       {
          /* Display 10 numbers. */
    
          for(i = 0; i < 10; i++)
             printf( "Résultat #%d:  %6d\n", i, rand());
          
          printf("\n\nVoulez-vous jouer une autre partie: (o/n) \n");
       }
       while (tolower(getchar()) == 'o');
    }
    
    ou dans un tableau mais inutile si seulement pour affichage ...
    
    void main(void)
    {
       int i, Tableau[10];
    
       /* Seed the random-number generator with current time so that
           the numbers will be different every time we run.  */
    
       srand((unsigned)time(NULL));
    
       do
       {
          /* Display 10 numbers. */
    
          for(i = 0; i < 10; i++)
             Tableau[i] = rand();
          
          for(i = 0;i < 10; i++)
             printf( "Résultat #%d:  %6d\n", i, Tableau[i]);
          
          printf("\n\nVoulez-vous jouer une autre partie: (o/n) \n");
       }
       while (tolower(getchar()) == 'o');
    }
    
    


    J'adore le C/C++

    https://www.winfly.net/
    0
    1. Winfly Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
       
      Désolé,
      J'avais pas vu qu'il falait le trier et voila :

      void SortTable(int *Tableau, int n)
      {
         int i, Sw, Cont = 1;
      
         while (Cont)
         {
            Cont = 0;
            for (i = 0; i < n-1; i++)
               if (Tableau[i] > Tableau[i+1])
               {
                   Sw = Tableau[i];
                   Tableau[i] = Tableau[i+1];
                   Tableau[i+1] = Sw;
                   Cont = 1;
               }
         }
      }
      
      void main(void)
      {
         int i, Tableau[10];
      
         /* Seed the random-number generator with current time so that
             the numbers will be different every time we run.  */
      
         srand((unsigned)time(NULL));
      
         do
         {
            /* Display 10 numbers. */
      
            for(i = 0; i < 10; i++)
               Tableau[i] = rand();
      
            SortTable(Tableau, 10);
            
            for(i = 0;i < 10; i++)
               printf( "Résultat #%d:  %6d\n", i, Tableau[i]);
            
            printf("\n\nVoulez-vous jouer une autre partie: (o/n) \n");
         }
         while (tolower(getchar()) == 'o');
      }
      

      0
      1. Alfred > Winfly Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
         
        Non, on ne réinvente jamais la roue.
        Les fonctions de tris (dichotomiques) sont incluses en standard (1 ligne de code...)
        0
      2. Winfly Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2 > Alfred
         
        Oui, mais Alfred c'est beaucoup mieux quand ont sait comment elle marche et je suis d'accord quand ont veux optimiser le code. Tu pourrais me nommé cette fonction en C/C++ ?
        0
  4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    0