Programme en C
Bonjour,
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.
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.
A voir également:
- Programme en C
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
4 réponses
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
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]); }
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:
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
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"); } }
Voici un example tirer de MSDN que j'ai modifier avec la boucle et la question :
J'adore le C/C++
https://www.winfly.net/
#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/
Désolé,
J'avais pas vu qu'il falait le trier et voila :
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'); }
qsort... En C ou en C++ pas de problème.
http://www.cplusplus.com/reference/cstdlib/qsort/
Sachant qu'en C++, on ne fera même pas un qsort a priori. Si on veut maintenir un ensemble d'éléments ordonné on utilise la STL : soit un std::set (pas de doublons) ou un std::multiset (éléments en plusieurs exemplaires autorisés).
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Bonne chance
http://www.cplusplus.com/reference/cstdlib/qsort/
Sachant qu'en C++, on ne fera même pas un qsort a priori. Si on veut maintenir un ensemble d'éléments ordonné on utilise la STL : soit un std::set (pas de doublons) ou un std::multiset (éléments en plusieurs exemplaires autorisés).
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Bonne chance