Java comment faire pour calculer la moyenne des scores à l'aide de boucles
J'ai besoin d'écrire un programme en Java qui calcule le score moyen de 4 étudiants. L'étudiant aura à se mettre dans les 4 scores, et une fois qu'ils ont fait, ils le seront d'entrée -1 pour calculer la moyenne. Une fois cela fait, le programme a besoin de se déplacer sur l'élève 2 et ainsi de suite. À la fin il est censé afficher la moyenne la plus élevée de l'élève de 4e la moyenne des scores aux tests. Voici à quoi il devrait ressembler quand il est exécuté:
Élève 1
Entrez votre score: 100
Entrez votre score: 90
Entrez votre score: 80
Entrez votre score: 70
Entrez votre score: -1 * une fois que l'élève entre -1 il faut calculer la moyenne
Score Moyen = 85.
Élève 2
Entrez votre score: 90
ETC
ETC
Le problème avec mon code, c'est que la moyenne est seulement de corriger le premier étudiant. Quand j'ai d'entrée -1 pour obtenir la moyenne de l'étudiant de deuxième, le calcul est erroné. Nous sommes seulement autorisés à utiliser des boucles. Les seuls conseils qu'on m'a donné étaient que nous sommes censés écrire une boucle externe qui effectue une itération 4 fois, écrire une boucle qui tourne tant que l'étudiant a obtenu des résultats à l'entrée, à l'intérieur de la boucle intérieure invite l'utilisateur à entrer son dernier score ou -1 pour calculer la moyenne. Je ne veux pas vous les gars à faire le projet pour moi, mais juste me mettent dans la bonne direction. J'ai l'impression que je ne suis pas à l'aide de la droite de la boucle.
import java.util.Scanner;
public class TestScore
{
public static void main(String[]args)
{
double score = 0;
double totalScore = 0;
double count = 0;
double average = 0;
Scanner input = new Scanner(System.in);
System.out.println("Student 1");
System.out.printf("Enter Your Score: ");
score = input.nextDouble();
while (score != -1){
System.out.printf("Enter Your Score: ");
totalScore = totalScore + score;
score = input.nextDouble();
count++;
average = totalScore / count;
if (score == -1){
System.out.printf("Average Score = %.2f\n ",average);
count = 0;
score = 0;
totalScore = 0;
average = 0;
System.out.println("Student 2");
System.out.printf("Enter Your Score: ");
score = input.nextDouble ();
count++;
average = totalScore / count;
}
}
}
}
- Vous avez besoin d'avoir un tableau pour stocker chacune des scores et de parcourir ce tableau si vous obtenez -1 et de calculer la moyenne de la somme dépend du nombre d'éléments dans le tableau.
- Eh bien, où est votre boucle externe?
- Merci pour la réponse, mais nous ne sommes pas autorisés à utiliser des tableaux.
- Je pensais que la boucle WHILE est la boucle externe.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas explicitement posé une question donc je vais essayer et de se conformer à la "mets-moi dans la bonne direction" partie.
Je vous suggère de re-formatage de la structure de boucle à l'assainissement de l'un, comme ceci:
Espère que c'est assez pour vous donner quelques conseils.
edit: oublié de prendre soin de
total
while
boucle dans undo ... while
un. N'hésitez pas à demander (commentaire) de nouveau si vous avez besoin de plus de pointeurs!Donc, vous souhaitez de manière itérative aller à travers tous les commentaires et n'oubliez pas le maximum. Faire une variable de type entier max et après chaque étudiant, il suffit de changer si nécessaire. (C'est zéro par défaut jn Java)
Comme pour le calcul, pour chaque élève, vous ne devriez pas être la vérification de l'échec du " score != - 1" état, dans chaque itération. Au lieu de cela, vous devriez faire les calculs définitifs après la boucle while. (en moyenne, mise à jour éventuelle de la valeur maximum, la réinitialisation des variables, etc. )
Vous avez également besoin de la boucle externe (dans la limite de code, ces calculs sont effectués pour un seul étudiant) qui vous permettrait de contrôler d'une manière différente.
Aussi, si vous avez besoin d'utiliser seulement 4 catégories, vous pouvez envisager d'utiliser la boucle for.
Vous pouvez essayer avec ce 😀