niknax Δημοσ. 8 Μαρτίου 2008 Δημοσ. 8 Μαρτίου 2008 Kαλησπέρα σε όλους και καλή Αποκριά! Δεν καταλαβαίνω πού κάνω λάθος στον κώδικα στο εξής πρόγραμμα που ζητάει να βρεθεί ο μέσος όρος κάποιου μαθήματος (Φώνηση) σε 10 μαθητές που θα εισάγουν το βαθμό τους.Η απορία μου είναι η μεταβλητή metritis.Όταν το τρέχω μου βγάζει 12 φορές την ερώτηση "Bάλε το βαθμό σου στη Φώνηση: " και όχι 10 όπως θα έπρεπε.. Ο κώδικας είναι: import java.util.Scanner; public class Fwnisi { public Fwnisi() { } public void Bath () { Scanner input = new Scanner (System.in); int synolo = 0; // άθροισμα βαθμών int vathmos; // o βαθμός του μαθήματος int metritis = 0; double MesosOros; System.out.println("Bάλε το βαθμό σου στη Φώνηση: "); vathmos = input.nextInt(); metritis += 1; while(metritis <9) { System.out.println ("Bάλε το βαθμό σου στη Φώνηση: "); vathmos = input.nextInt(); metritis++; synolo = synolo + vathmos; } MesosOros = synolo / metritis; System.out.printf("O μέσος όρος στη Φώνηση είναι: %.2f",MesosOros); } }
Γηρυόνης Δημοσ. 8 Μαρτίου 2008 Δημοσ. 8 Μαρτίου 2008 Kαλησπέρα σε όλους και καλή Αποκριά! Δεν καταλαβαίνω πού κάνω λάθος στον κώδικα στο εξής πρόγραμμα που ζητάει να βρεθεί ο μέσος όρος κάποιου μαθήματος (Φώνηση) σε 10 μαθητές που θα εισάγουν το βαθμό τους.Η απορία μου είναι η μεταβλητή metritis.Όταν το τρέχω μου βγάζει 12 φορές την ερώτηση "Bάλε το βαθμό σου στη Φώνηση: " και όχι 10 όπως θα έπρεπε.. Γεια σου niknax. Είσαι σίγουρος ότι σου βγάζει την ερώτηση δώδεκα φορές; Κανονικά θα έπρεπε να σου τη βγάζει εννέα, το while βγαίνει όταν ο μετρητής θα είναι 9, άρα θα εκτελεστεί 8 φορές, και μία η αρχική (έξω από το while) = 9.
elis88 Δημοσ. 11 Μαρτίου 2008 Δημοσ. 11 Μαρτίου 2008 Άλλο ένα λαθάκι που μου φλενεται ότι έχει ο κώδικας είναι ότι.... δίνεις ένα βαθμό έξω από το while χωρίς να το βάζεις στο synolo. Έτσι δεν θα βρεις το πραγματικό μέσο όρο... θα χάσεις ενα βαθμό.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.