Jump to content

pb en c


Recommended Posts

slt tout le monde.

alors j'ai une question a posé:et merci d'avance pour vos reponse

j'ai un programme qui doit m'affiché des erreur en cas si je le donne un nombre pas equivalent de ce qu'il doit avoir

printf("entrer le nbre de sommets:\n");
scanf("%d",&ns);
if(ns>100)
printf("depassement de capacité\n");

c une partie du programme ou je doit pas avoir un nombre superieur a 100 et en cas de l'avoir je doit ecrire depassement de capacité et sortir directement du programme .alors comment faire?merci

Link to comment
Share on other sites

Si j'ai bien compris, si t'as un nombre > 100 tu sors du programme.

Donc:

printf("entrer le nbre de sommets:\n");
scanf("%d",&ns);
if(ns>100){printf("depassement de capacité\n"); return 0;}

Si la valeur de retour de ton main est un int.

dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire.

Link to comment
Share on other sites

dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire.
Merci de te relire ?

Qu'est ce que tu entends par dépassement de capacité ?

Ton int peut aller bien au dela de 100.

Il me semble qu'il y a une notion que tu n'as pas bien assimilé.

Link to comment
Share on other sites

Je pense qu'il a une sorte de valeur à ne pas dépasser par exemple sur un système industriel ceci peut se produire imagine dans une chaîne de montage de pack de bière si quelqu'un fait un programme en demandant combien de bière doivent être rentré dans le pack si la personne rentre 10 ben ca passe pas dans le pack et le robot l'est bête alors il casse la bière et faut surtout pas gâcher la bière :non: alors il faut sortir du programme.

Pour ton problème apres le printf fait un getchar() ( pour que tu vois le message d'erreur ) et ensuite soit le return 0 de shark_atlantis ou alors un break; :byebye:

Link to comment
Share on other sites

dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire.

Il doit l'afficher mais tu n'as pas le temps de le voir que la fenêtre se ferme. Tu n'aurais pas ce problème si tu lances ton application depuis une console (ou fenêtre ms-dos selon ton OS).

Bref :

puts("entrer le nbre de sommets:");
scanf("%d",&ns);
while(getchar() !='\n'); // vide le buffer d'entree mais pas trop necessaire dans le cas d'un int
if(ns>100)
{
puts("depassement de capacité"); 
getchar();
return 0;
}

Link to comment
Share on other sites

De quel getchar() parles-tu? Celui de la fin permet d'attendre avant de fermer la fenêtre.

Pour l'autre, il permet de vider le tampon d'entrée. Imagine qu'il rentre une lettre à la place d'un int, il peut faire planter le programme. De toute façon, il faut éviter au maximum scanf(). Et quand on l'utilise, faut toujours vider le buffer, toujours :)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...