aide c/c++ svp

patrickrochon

Membre confirmé
10 Octobre 2005
10
0
Bonjour,

pour l'école, je dois écrire un petit programme qui détermine le plus petit entier parmi un liste d'entier (positif ou négatif) entrés par l'usager. Le programme commence par demander la quantité d'entiers que l'utilisateur veut entrer.

je dois absolument utiliser une boucle FOR

j'en suis

int main (int argc, char * const argv[])
{
int quantite; //quantite d'entier que l'utilisateur veut entrer
int compteur;
int nombre;

cout <<"Combien d'entiers voulez-vous entrer ";
cin >> quantite;
cout <<"S.V.P. Entrez les " << quantite <<" entier(s)"


for(compteur = 1; compteur <= quantite; compteur++)
{


}
return 0;
}



bon, voilà. C'est le contenu de la boucle qui m'enbête, car je d'après l'aperçu que le professeur nous a donné, il ne faut pas qu'il y est de cout dans la boucle, on doit "lire" autant d'entier que le nombre spécifié par l'utilisateur, ensuite les comparer pour trouver le plus petit, et enfiin afficher le plus petit du genre:

cout <<"Le plus petit entier est " << nombre << endl;


J'espère que vous comprenez quelque peu ce que je reconte e que vous pourrez me donner un coup de main

merci
 

Didier Guillion

Membre expert
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
Bonsoir,

Excuse moi, si je vais te paraitre méchant, mais si le prof t'a donné un exercice c'est pour que tu te "casse un peu la tete" dessus, c'est comme cela que l'on apprends.
Je ne pense pas que le résoudre a ta place soit un bon service a te rendre.

Cordialement
 

laurent1

Membre actif
20 Octobre 2004
793
28
44
Didier Guillion a dit:
Bonsoir,

Excuse moi, si je vais te paraitre méchant, mais si le prof t'a donné un exercice c'est pour que tu te "casse un peu la tete" dessus, c'est comme cela que l'on apprends.
Je ne pense pas que le résoudre a ta place soit un bon service a te rendre.

Cordialement
ouais! tu dits ca parce que tu connais pas la réponse!!:rateau:
 

laurent1

Membre actif
20 Octobre 2004
793
28
44
sacré Didier, va!!;)
 

patrickrochon

Membre confirmé
10 Octobre 2005
10
0
je ne veut pas qu'on écrive tout le programme à ma place, cependant j'aurais apprécié un début de piste.

Je suis parfaitement conscient que je ne serai jamais autonome si je ne fais rien par moi-même, mais là je suis un peu embêté...

par exemple, si l'utilisateur dit qu'il veut comparer 5 entiers, dois-je mettre mettre dans la boucle For 5 cin >> quelque chose et ensuite comparer les nombres ?

Nous venons tout juste de commencer les boucles et le nous n'avons pas eu beaucoup de thérorie. Il ne s'agit que d'exercices, pas de travaux à remettre alors je me demandais si quelqu'un pouvait m'aider à comprendre c'est tout
 

Didier Guillion

Membre expert
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
patrickrochon a dit:
je ne veut pas qu'on écrive tout le programme à ma place, cependant j'aurais apprécié un début de piste.

Je suis parfaitement conscient que je ne serai jamais autonome si je ne fais rien par moi-même, mais là je suis un peu embêté...

par exemple, si l'utilisateur dit qu'il veut comparer 5 entiers, dois-je mettre mettre dans la boucle For 5 cin >> quelque chose et ensuite comparer les nombres ?

Nous venons tout juste de commencer les boucles et le nous n'avons pas eu beaucoup de thérorie. Il ne s'agit que d'exercices, pas de travaux à remettre alors je me demandais si quelqu'un pouvait m'aider à comprendre c'est tout


Deja il te faut mémoriser les entiers que l'utilisateur va saisir.

Ceci peut se faire via un tableau correctement dimensionné :

En declaration :

long * TableauDesSaisies;

Apres que tu ait connaissance du nombre d'entrées "quantite"

TableauDesSaisies=(long *)malloc(sizeof(long)* quantite);

(En sortie ne pas oublier free((char)* TableauDesSaisies);)

Ensuite tu saisie tes valeurs dans
TableauDesSaisies[compteur]


Et ensuite un petit :

qsort(TableauDesSaisies, quantite,sizeof(long),VectCompare);

Voir :
http://www.cplusplus.com/ref/cstdlib/qsort.html

Pour un explication du qsort...

Le premier index de ton tableau sera le plus petit.

Bonne chance...

Cordialement
 

geoffrey

Membre expert
Club MacG
19 Août 2004
3 070
145
44
kwit.fr
Il faudra que tu fasse une iteration par entier. Il te faudrait aussi une variable pour stocke le "plus petit entier actuel".

Bon cherche un peu à partir de la, c'est vraiment pas un exo difficile !
 

BooBoo

Membre actif
22 Février 2005
364
34
45
Gaillon (27)
Didier Guillion a dit:
TableauDesSaisies=(long *)malloc(sizeof(long)* quantite);

heuuu, si le monsieur commence juste a apprendre les boucle, je ne suis pas sur que les pointeurs soient au programme...
au vu du probleme, il n'y a pas besoin de mémoriser toutes les entrées, mais seulement de memoriser le plus petit.

pourquoi faire simple quand on peut faire compliquer ?
 

patrickrochon

Membre confirmé
10 Octobre 2005
10
0
merci beaucoup pour toutes les pistes

en effet, nous n'en sommes pas encore aux pointeurs (merci tout de même)

bon, je parviens à lire les données, mais c'est bête j'ai de la difficulté à me visualiser comment déterminer la valeur la plus petite.

J'ai créé une variable plus_petit_actuel

j'ai de la difficulté à voir comment je dois la définir genre plus_petit_actuel = le plus petit parmi tout ceux qui ont été entré.


Il faut que je les élimine au fur et à mesure que j'avance ?

voilà ce que j'ai (il faut que j'affiche dans la console tous les entiers que l'utilisateur entre) et j'ai surtout un problème où il y a des ??????


int main (int argc, char * const argv[])
{

int quantite;
int i; //itérateur
int plus_petit_actuel;
int un_entier;


cout <<"Combien d'entier voulez-vous entrer ? ";
cin >> quantite;

cout <<"svp entrez les " << quantite <<" entier(s)";


for(i = 1; i <= quantite; i++)
{
cin >> un_entier;
cout << un_entier << endl;
plus_petit_actuel = ????????;
}

cout <<"Le plus petit entier est " << plus_petit_actuel;
return 0;
}
 

canari

Membre confirmé
14 Juillet 2004
73
2
52
patrickrochon a dit:
merci beaucoup pour toutes les pistes
for(i = 1; i <= quantite; i++)
{
cin >> un_entier;
cout << un_entier << endl;
plus_petit_actuel = ????????;
}

bon, c'est sûr que si tu as déjà des soucis avec ce petit exercice, tu vas avoir du mal à aller au bout du programme :)
dans ta boucle, si c'est le 1er nombre saisi, tu le mémorises:
if ( i == 1 ) plus_petit_actuel = un_entier;
et pour tous les autres nombres saisi, on garde le nb saisi s'il est plus petit que le nombre mémorisé:
if ( i > 1 && un_entier < nb_memorise ) (ou mettre un else au if précédent) plus_petit_actuel = un_entier;
 

canari

Membre confirmé
14 Juillet 2004
73
2
52
geoffrey a dit:
En meme temps c'est les premiers cours, s'il comprends bien ca, ca roulera pour tout, ou presque. Un peu d'indulgence ;) :zen:

j'ai été indulgent puisque je l'ai aidé (sinon je n'aurai rien écrit).
je pense malgré tout que c'est une question toute bête et de pure logique ne nécessitant pas de cours (informatique ou autre).
je ne parle pas des boucles mais de la question sur le "comment connaître le nombre le plus petit saisi".
maintenant, on est aussi dans une époque où "pourquoi faire quelques chose si quelqu'un peut le faire à notre place" ;)
 

geoffrey

Membre expert
Club MacG
19 Août 2004
3 070
145
44
kwit.fr
Je suis d'accord avec toi, mais je me rappelais aussi mes premiers cours de programmation (aussi en C) et c'est vrai que je me suis aussi retrouvé à me demander comment trouver le plus petit entier (enfin c'etait aussi un exemple du meme genre).

Mais c'est effectivement un peu dommage pour le "pourquoi faire quelques chose si quelqu'un peut le faire à notre place". MAis bon, peut etre que Patrick ne comprenait vraiment pas et c'est pour ca qu'il a demandé ?
 

patrickrochon

Membre confirmé
10 Octobre 2005
10
0
Bonjour,

merci à tous

mon petit cerveau a finalement commencé à fonctionner et j'ai saisi la logique..

Je remercie toutes les personnes qui sont indulgentes envers les nouveaux initiés à la programmation.