-2
votes

Déclaration de commutation qui n'affiche aucun type de sortie autre que l'instruction par défaut

J'écris un exemple d'instruction de commutation et tout va bien, aucune erreur n'est donnée et ça marche bien mais ça ne fait pas ce que je veux que ce que je veux faire. Cela ne montre aucune sortie du tout, toutes suggestions s'il vous plaît?

Je ne sais pas quoi essayer car il n'y a pas d'erreur, cela ne fonctionne pas xxx

i veulent que cela me dise les remarques de la note de l'élève, mais cela ne montre rien du tout et il montrera toujours le message par défaut quoi que vous entriez


8 commentaires

Cout << "Veuillez entrer les grades de l'étudiant:"; peut-être que vous devriez changer cela pour entrer dans la note de l'élève. Vous récupérez une seule note, pas plusieurs grades.


Main () doit être Int Main ()


moyenne, somme = 0; L'opérateur des virgules ne fait pas ce que vous pensez. ideone.com/ndxf4y


Merci d'avoir essayé de répondre et j'apprécie vraiment cela, mais aucune des choses que vous avez suggérée était le problème, le problème réel était que j'utilisais de Char, tandis que j'aurais dû utiliser Getchar () le gars qui a commenté deuxième qu'il a bien fait et j'ai donc essayé et ça a fonctionné pour moi aussi pour que vous devriez essayer aussi c'est un bon exercice et merci encore pour vos efforts.


Je voudrais simplement signaler d'autres bugs dans votre code. Les choses que j'ai postées sont des bugs. La raison pour laquelle je n'ai pas mentionné que le problème de caractère était que @icii avait déjà répondu à cette partie lorsque j'ai commenté.


Comment est-ce un bug? ça marche juste bien


Travailler bien ne signifie pas que le code n'a pas de bugs. Les 3 choses que j'ai mentionnées étaient des problèmes / bugs dans votre code.


Ok peut-être que vous avez raison mais que je pose la solution aussi et j'ai essayé de résoudre vos soi-disant bugs là-bas


3 Réponses :


3
votes

Vous devez faire grade A char , pas un int .

CIN >> Note; tente de lire un entier à partir du flux d'entrée, car grade est un int . Si vous faites note A char , CIN >> lira simplement un seul caractère. (Dans les deux cas, il saute d'abord avec espaces, vous ne pouvez donc pas lire un seul personnage d'espaces. Mais cela n'a pas d'importance ici.)

Il convient probablement d'ajouter que lorsque vous essayez de lire un numéro et qu'il n'y a pas de numéro à lire (parce que l'utilisateur a saisi une note de lettre), le flux d'entrée est placé dans un état d'erreur. Jusqu'à ce que l'erreur soit réinitialisée avec std :: cin.clear () Toute tentative d'entrée échouera sans rien lire. Voir STD :: IStream :: Effacer , en particulier le code exemple fourni .


5 commentaires

En outre, je ne sais pas pourquoi vous faites ceci: Char A, A, B, B, C, C, D, D, F, F; . Il est totalement inutile.


Tout d'abord, merci pour vos efforts, puis votre réponse était un peu utile que j'ai changé de charcuterie () et cela a fonctionné bien le gars au-dessus de votre réponse le suggéré, je parle en fait que je parle lentement mon professeur ne m'a pas appris le code u a donné et ne peut pas encore le comprendre mais toujours merci


et j'ai ajouté A, B, C, D, car il pense qu'il est préférable de comprendre quels sont les personnages que quiconque peut entrer. J'ai juste essayé de faire un bon programme


@Mutiurrehman: Ce n'est pas ce que Char A; signifie. char A; déclare une variable nommée A ; Cela n'a rien à voir avec la valeur de caractère 'a' . (Et, pour ce que sa valeur, ma suggestion était de changer int old à de grade de caractère; . Je pense que vous devez travailler à la compréhension des variables et comment les déclarations fonctionnent. )


Oui vous avez raison, je lui ai donné une pensée et j'ai pu faire le programme à ma manière



-1
votes

Cela devrait fonctionner. J'ai utilisé getchar () au lieu de CIN CauseChare obtiendra un seul caractère (char = caractère unique, chaîne plusieurs caractères). Si vous utilisez CIN et un type d'utilisateur dans plus d'un caractère, un seul caractère n'utilisera que le premier caractère.

Un autre point est votre déclaration de Char A-F, A-B. Ceci est inutile. A, B, C, D, F, F ne sont que des noms, vous devez comparer à une valeur. Dans votre propre interrupteur, vous n'utilisez pas tous ces caractères, vous les comparez à un personnage pas avec une variable. Case 'A': Vérifiez si GRADE == 'A'not Si Grade == a.

Un autre point est celui-ci: moyenne, somme = 0 . Je ne fais pas vraiment ce que vous voulez faire, mais si vous essayez de les mettre stand à 0 c'est le mauvais sens. Ensuite, vous devriez faire dans la déclaration comme Etudiant, moyen = 0, somme = 0; . Vous avez déclaré 3 entiers, donnez-leur une valeur mais ne les utilisez jamais, peut-être plus tard? J'ai changé principal () à int Main () (retourType = entier) Plus d'informations sur la principale: Quelle est la déclaration appropriée de la principale?

j'ai ajouté retour 0; à la principale, car une fonction doit avoir de retour!

J'ai également ajouté des lampes à votre sortie afin de mieux lire de la console.

J'ai commenté pense où je pense qu'ils sont inutiles ou faux. Si vous avez des questions ou si je faisais une erreur, PLS m'a laissé savoir. xxx


6 commentaires

merci beaucoup j'ai beaucoup changé à getchar et ça a fonctionné bien alors merci encore je l'apprécie vraiment vraiment


Je dois entendre et voir que vous améliorez votre code par vous-même!


ouais je l'ai fait et je l'ai posté mais c'est en fait c'était vous qui m'a aidé à le faire directement et indirectement, alors merci encore


Oui j'ai vu, mais je ne peux pas commenter ça. Content d'être utile et de continuer à travailler. Votre code amélioré est beaucoup mieux mais n'oubliez pas la pause par la déclaration par défaut.


Est-il nécessaire d'appliquer une pause après la déclaration par défaut car elle se terminera de toute façon, même si je n'écris pas Break Plus, cela fonctionne juste bien


Je sais que je travaille bien mais c'est un meilleur style à mon avis



0
votes

ok donc j'ai posé cette question hier et merci de vous remercier de votre aide, j'ai utilisé getchare à la réponse, mais honnêtement, je n'ai pas su quel était le but de Getchar parce que je n'ai pas encore appris que je n'ai pas encore appris que j'ai continué à essayer et Je l'ai résolu enfin je pose cela seulement parce que vous avez partagé vos connaissances et m'a aidé donc je veux partager ce que j'ai appris à accroître vos connaissances. Le code est ici xxx


0 commentaires