Programme en C
Fermé
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
-
26 nov. 2009 à 21:23
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 27 nov. 2009 à 15:41
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 27 nov. 2009 à 15:41
A voir également:
- Programme en C
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
4 réponses
nobie-cs
Messages postés
155
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
15 mai 2010
17
26 nov. 2009 à 22:56
26 nov. 2009 à 22:56
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"); } }
Winfly
Messages postés
16
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
27 avril 2010
2
27 nov. 2009 à 03:14
27 nov. 2009 à 03:14
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/
Winfly
Messages postés
16
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
27 avril 2010
2
27 nov. 2009 à 03:41
27 nov. 2009 à 03:41
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'); }
Alfred
>
Winfly
Messages postés
16
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
27 avril 2010
27 nov. 2009 à 08:46
27 nov. 2009 à 08:46
Non, on ne réinvente jamais la roue.
Les fonctions de tris (dichotomiques) sont incluses en standard (1 ligne de code...)
Les fonctions de tris (dichotomiques) sont incluses en standard (1 ligne de code...)
Winfly
Messages postés
16
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
27 avril 2010
2
>
Alfred
27 nov. 2009 à 14:58
27 nov. 2009 à 14:58
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++ ?
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
27 nov. 2009 à 15:41
27 nov. 2009 à 15:41
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