C Programme qui compte le nombre de succès ou d'échec des grades et des sorties lorsqu'un nombre négatif est appliqué en entrée
Je suis un débutant à la Programmation en C et nous sommes toujours en partant sur les boucles. Pour notre exercice d'aujourd'hui, nous avons été chargé de créer un faire-alors que le programme qui compte le nombre de succès et d'échec des teneurs y sont mais la boucle des pauses lorsqu'un nombre négatif est appliqué en entrée. Aussi, les chiffres au-dessus de 100 est ignorée. C'est mon programme:
#include<stdio.h>
#include<conio.h>
int main()
{
int grade, pass, fail;
pass = 0;
fail = 0;
do {
printf("Enter grade:\n");
scanf("%d", &grade);
printf("Enter -1 to end loop");
}
while(grade == -1){
if(grade < 100){
if(grade >= 50){
pass = pass + 1;
}
else if {
fail = fail + 1;
}
}
break;
}
printf("Pass: %d", pass);
printf("Fail: %d", fail);
getch ();
return 0;
}
Quelqu'un peut-il me dire comment faire pour améliorer ou où je suis allé mal?
Votre
Notez que vous ignorez les étudiants qui parviennent à obtenir une note de 100 (vous devriez avoir
while
boucle est en fait un do-while
boucle. Les trucs entre crochets après ne fait pas partie de la boucle - c'est en fait un champ d'application bloc. Ce qui est faux. Aussi, votre bien que la condition est fausse, la syntaxe de else if {
est pas valide, et vous ne devriez pas avoir un break
.Notez que vous ignorez les étudiants qui parviennent à obtenir une note de 100 (vous devriez avoir
if (grade <= 100)
). Ce fut en silence corrigé dans la accepté de répondre.OriginalL'auteur confusedcat | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour mettre tout le code que vous avez de la boucle entre le
do
et lawhile
consolidés.La structure générale d'une boucle while est:
Vous êtes les bienvenus! Vous devez accepter si cela a été utile 🙂
Notez que -2 est un nombre négatif (et devrait arrêter la boucle selon les spécifications), mais ni l'original ni la version révisée du code se termine la boucle lorsque -2 est entré. La condition doit être
while (grade >= 0);
À partir de la
printf("Enter -1 to end loop");
déclaration, il ressemble à-1
est nécessaire pour sortir de la boucle, c'est pourquoi je l'ai laissé là.OriginalL'auteur jh314
Bonjour Khalid, veuillez tenir compte de la tabulation de votre code et en expliquant ce que vous faites pour l'OP et de mettre votre explication de la réponse elle-même pas dans un commentaire ci-dessous il
Vous pouvez également utiliser cette condition "while(niveau > 0". C'est aussi un très bon état
L'homme désolé . Je suis nouveau sur ce site . La prochaine fois, ça ne marchera pas 🙂
Merci beaucoup pour toute l'aide! Mon code fonctionne maintenant 🙂
OriginalL'auteur Khalid Ahmed
Est un mélange de 2 concepts: la
while loop
et lado while loop
- j'aimerais commencer par refactoring pièce.Ouais, je ne sais pas ce refactoring moyens. Nous sommes toujours en partant sur toutes les boucles et je suis un étudiant de première année des études d'Informatique et c'est pratiquement la première fois que je suis de codage. Je suis désolé. Je vais rechercher sur cela plus tard.
OriginalL'auteur John3136
La logique de votre problème est:
jh314 de la logique de présentation est correct, mais ne résout pas la logique d'exécution:
Vous êtes les bienvenus, @ThezzaBaluyos. L'écriture de problèmes comme ça, c'est très utile lors de l'écriture de code. Finalement, vous arrivez à un point où vous pensez que régulièrement. Je vais vous laisser avec un axiome: "le Papier est de la RAM". 😉
OriginalL'auteur jrd1