PRG langage c bloquage complet aide svp

  • Auteur de la discussion Eic2004
  • Date de début

Eic2004

Nouveau membre
bonjour !
je suis débutant en langage C, et j essay de faire un prg qui affiche le plus grand et le plus petit d une suite d entiers saisie. et je veux pas que les nombre soient conserver en mémoire (pas de tableau)et la suite doit se terminer par la valeur 0
c est un peu difficil et je suis bloqué je crois qu il y a pas de moyen de faire ce prg sans les tableau !!!
voulais vous m aider svp?
bon je vx que l utulisateur entre un suite et que le prg lui donne le plus gran d et le plus petit d entiers entrés et je vx que la suite se termine avec la valeur 0
je ss pas ce que je doit utuliser je crois qu une liste chainée fera l affaire
 

zeb

Modérateur
Aïe, j'ai mal aux yeux.....


Ca sent l'exercice scolaire à plein nez !

1°) : Apprendre tes cours,
2°) : Réviser tes cours.

Euh, sinon, il faut aussi être un peu astucieux. Et ça, ça ne s'apprend pas, ça vient tout seul quand on est à l'aise dans le domaine. Donc pendant que tu (ré)vises tes cours, voici une astuce :
Déclaration
Une variable MonPlusGrandNombre
Une variable MonPlusPetitNombre

Initialisation
Mettre le plus grand nombre possible dans MonPlusPetitNombre
Mettre le plus petit nombre possible dans MonPlusPetitNombre

Saisie
Début de la boucle
1°) Demander la saisie d'un seul nombre. Si 0, on sort de la boucle.
2°) Mettre dans MonPlusPetitNombre le plus petit nombre entre le nombre saisi et MonPlusPetitNombre.
3°) Mettre dans MonPlusGrandNombre le plus grand nombre entre le nombre saisi et MonPlusGrandNombre.
Boucler.
Afficher MonPlusPetitNombre et MonPlusGrandNombre.

Bonne résivion
 

Eic2004

Nouveau membre
bon pour te dire mr. zeb c est pas du tt un exercice c est que j ai vu qu un camarade essay de le faire et il a abondonner ne disant que c est plus fort que lui alors je vx le faire comme ça je lui demontre que si on vx on peu !!

j ai deja commencer avec ça
mais ça donne pas grand chose !!
int min, max, choix=1;
while(choix!=0)
{
scanf(%ld, &choix);
if(choix < min)
min=choix;
if(choix > max)
max=choix;
}
printf("Fin de la saisie !");
//et là si tu veux tu affiche la valeur de min et max
merci quand meme et j espere que vous allez m apprendre qlq chose de nouveau
 

batchy

Grand Maître
la boucle est correcte, mais vu les conditions initiales, elle ne peut pas marcher.

à la toute première itération, min ne contient aucune sorte de minimum et max ne contient aucune sorte de maximum. en fait elles contiennent n'importe quoi.
parfois par chance, ce n'importe quoi est supérieur (inférieur) au maximum (minimum), et donc elles peuvent parfois contenir des valeurs cohérentes.

il faudrai en fait lire une valeur au clavier dès le départ, une valeur qui serai à la fois le maximum et le minimum. il faut aussi traiter le cas particulier ou on rentre 0 dès le début. mais si on rentre 0 dès le début, on ne passe même pas une première fois dans la boucle ...
 

Eic2004

Nouveau membre
voila ce que j ai reussi apres que j ai lu votre message mr. batchy ,
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

main ()
{
int min, max, choix=1;

puts ("Le Min & Le Max");
while(choix=0) //on demande tant qu'on ne rentre pas 0
puts ("Le Min & Le Max");
{
puts ("entrer votre suite");
scanf("%d",&choix);
if(choix<min) //si on tape un nombre qui est le plus petit
min=choix; //il devient le plus petit ^^
if(choix>max) //si on tape un nombre qui devient le plus grand
max=choix; //il devient le plus grand
}
printf("Fin de la saisie : ");
printf ("%d", min);
printf ("%d", max);
getch ();
//et là si tu veux tu affiche la valeur de min et max (avec printf)
return(0);
}
voulez vous me donner un code source correcte par ce que pour etre franc avec vous j ai mal a la tete
 

Eic2004

Nouveau membre
je ss pas comment faire pour le baiser et t a qu a le copier et le coller
 

zeb

Modérateur
Batchy> Résivion, C'est une contrepèterie même pas drôle. On dit aussi une coquille :whistle:

Batchy> Le type int a des bornes, on peut donc initialiser son max et son min :o

eic2004> Style SMS très agaçant + Non respect des règles. M'enfin, comme tu ne les as pas lues, tu ne peux pas savoir. Pour faire plaisir à KangOl et montrer du respect envers tous ceux qui te lisent, lis et applique ces règles, notamment concernant la balise
Code:
 et le style SMS.
 

Eic2004

Nouveau membre
bon merci les mec et j ai resolu le probleme !!
si j est pas ecrit que je suis pas ce qui est ecrit ça vx pas dire que je l est pas suivie j ai suivie ce que les amis ont ecrits a la lettre et je suis arrivé au resultat mais c est que je l est pas ecrit alors faut pas me reprocher !!!
bon voila le code [cpp]#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

main ()
{
int min=0, max=0, choix=1; //on initialise min et max à 0

printf ("================================================================================\n");
printf (" Calcul du minimum et Maximum d une suite d entiers \n");
printf (" Debut Du Programme \n");
printf ("================================================================================\n\n\n\n\n\n\n\n\n");



while(choix!=0) //on demande tant qu'on ne rentre pas 0
{
puts ("entrer votre suite");
scanf("%d",&choix);
if(min==0 || max==0) //si min et max ont comme valeur 0
{
min=choix;
max=choix;
}
if(choix<min) //si on tape un nombre qui est le plus petit
min=choix; //il devient le plus petit ^^
if(choix>max) //si on tape un nombre qui devient le plus grand
max=choix; //il devient le plus grand
}

printf ("Min = ");printf ("%d\n",min);
printf ("Max = ");printf ("%d\n\n\n\n\n\n\n\n",max);

printf ("================================================================================\n");
printf (" By Eic2004 \n");
printf (" Fin Du Programme \n");
printf ("================================================================================\n");
getch ();
//et là si tu veux tu affiche la valeur de min et max (avec printf)
return(0);
}
[/cpp]
merci encore une fois les amis
 

batchy

Grand Maître
c'est une solution.

quand je disais qu'il suffisait de changer les variables au début :
Code:
int min, max, choix=0;
// les jolis puts/printfs...
scanf(%d,&choix);
min=max=choix;

// et ici la même boucle qu'avant :
while(choix!=0)  
{  
    scanf(%ld, &choix);  
    if(choix < min)  
        min=choix;  
    if(choix > max)  
        max=choix;  
}
 

Eic2004

Nouveau membre
voila le nouveau code lol
[cpp]#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void main ()
{
int min, max, choix=0;
printf ("================================================================================\n" );
printf (" Calcul du minimum et Maximum d une suite d entiers \n" );
printf (" Debut Du Programme \n" );
printf ("================================================================================\n\n\n\n\n\n\n\n\n" );
puts ("entrer votre suite : " );scanf("%d",&choix);
min=max=choix;

while(choix!=0)
{
scanf("%d", &choix);
if(choix < min)
{min=choix;}
if(choix > max)
{max=choix;}

printf ("Min = " );printf ("%d\n",min);
printf ("Max = " );printf ("%d\n\n\n\n\n\n\n\n",max);
printf ("================================================================================\n" );
printf (" By Eic2004 + Batchy \n" );
printf (" \n" );
printf ("================================================================================\n" );
getch ();
}
}[/cpp]
merci les amis
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut