Aller au contenu

pb en c


Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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:

Lien vers le commentaire
Partager sur d’autres 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;
}

Lien vers le commentaire
Partager sur d’autres 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 :)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...