mariamx83 Δημοσ. 29 Νοεμβρίου 2020 Μέλος Δημοσ. 29 Νοεμβρίου 2020 Μόλις τώρα, kaliakman είπε Θες να εκτυπώσεις τον αριθμό ή το άθροισμα; μόνο τον αριθμό τα πράγματα αλλάζουν αν ο χρήστης δώσει το -99
najinblue3 Δημοσ. 29 Νοεμβρίου 2020 Δημοσ. 29 Νοεμβρίου 2020 Με ψευδοκωδικα Set sum = 0 Set counter = 0 Set min,max... Do while(input != -99) Set counter += 1 Set sum += input ..... End while Βασικα οπως ειπαν και τα παιδια απο πανω πρεπει να βαλεις τις μεταβλητες μεσα στο σωμα της do while. Αν μπορεις να καταλαβεις τι εγραψα σχεδον τελειωσες με την ασκηση
mariamx83 Δημοσ. 29 Νοεμβρίου 2020 Μέλος Δημοσ. 29 Νοεμβρίου 2020 7 λεπτά πριν, najinblue3 είπε Με ψευδοκωδικα Set sum = 0 Set counter = 0 Set min,max... Do while(input != -99) Set counter += 1 Set sum += input ..... End while Βασικα οπως ειπαν και τα παιδια απο πανω πρεπει να βαλεις τις μεταβλητες μεσα στο σωμα της do while. Αν μπορεις να καταλαβεις τι εγραψα σχεδον τελειωσες με την ασκηση τα έχω βάλει μέσα στο σώμα και πάλι δεν βγαίνει...τα παρατάω ..πραγματικά έχω φτάσει στο όριο..ατέλειωτες ώρες και δεν μπορώ να την γράψω...ευχαριστώ πολύ για το χρόνο σου και φυσικά και τα υπόλοιπα παιδια
najinblue3 Δημοσ. 29 Νοεμβρίου 2020 Δημοσ. 29 Νοεμβρίου 2020 (επεξεργασμένο) 3 λεπτά πριν, mariamx83 είπε τα έχω βάλει μέσα στο σώμα και πάλι δεν βγαίνει...τα παρατάω ..πραγματικά έχω φτάσει στο όριο..ατέλειωτες ώρες και δεν μπορώ να την γράψω...ευχαριστώ πολύ για το χρόνο σου και φυσικά και τα υπόλοιπα παιδια για ποσταρε τι εκανες Επεξ/σία 29 Νοεμβρίου 2020 από najinblue3
mariamx83 Δημοσ. 29 Νοεμβρίου 2020 Μέλος Δημοσ. 29 Νοεμβρίου 2020 Μόλις τώρα, najinblue3 είπε για ποσταρε τι εκανες το έσβησα..τα νεύρα μου...κουράστηκα πάρα πολύ πραγματικά γι αυτή την άσκηση 1 λεπτό πριν, mariamx83 είπε το έσβησα..τα νεύρα μου...κουράστηκα πάρα πολύ πραγματικά γι αυτή την άσκηση #include <stdio.h> #include <stdlib.h> #include <math.h> int main () { int x,sum,min,max; float mo; system("CHCP 1253"); system("CLS"); x=0; sum=0; min=0; max=0; do { printf("Δώσε ένα ακέραιο αριθμό ή -99\n"); scanf("%d",&x); }while (x!=-99); μέχρι εδώ είναι οκ,το έχω δοκιμάσει και δουλεύει ..το μετά δεν μπορώ με τίποτα
najinblue3 Δημοσ. 29 Νοεμβρίου 2020 Δημοσ. 29 Νοεμβρίου 2020 Μεσα στην do-while πρεπει να αυξανεις τον counter καθε φορα κατα 1, οσο ο αριθμος δεν ειναι -99. Για το αθροισμα καθε φορα προσθετεις τον αριθμο που δινει ο χρηστης, και στο τελος το διαιρεις με τον counter για να βρεις τον μεσο ορο. Για το min-max καθε φορα πρεπει να τσεκαρεις αν το input ειναι μικροτερο η μεγαλυτερο αντιστοιχα απο το current min-max, και κρατας αυτο που σε ενδιαφερει.
k33theod Δημοσ. 29 Νοεμβρίου 2020 Δημοσ. 29 Νοεμβρίου 2020 jekinas etsi float x=0; printf('dose arithmo'); scanf('%f',&x); if(x==-99) return 0; meta dineis times stis alles metablites sum=0, numbers=0, max=x, min=x; meta grafeis to while while(x!=-99) { sum+=x; numbers+=1; if (x>max) max=x; if (x<min) min=x; printf('dose arithmo'); scanf('%f',&x); } meta tiponeis printf('arithmoi = %f', numbers); printf('mesos oros = %f', sum/numbers); printf('max=%f',max); printf('min=%f',min);
mariamx83 Δημοσ. 29 Νοεμβρίου 2020 Μέλος Δημοσ. 29 Νοεμβρίου 2020 (επεξεργασμένο) 25 λεπτά πριν, k33theod είπε jekinas etsi float x=0; printf('dose arithmo'); scanf('%f',&x); if(x==-99) return 0; meta dineis times stis alles metablites sum=0, numbers=0, max=x, min=x; meta grafeis to while while(x!=-99) { sum+=x; numbers+=1; if (x>max) max=x; if (x<min) min=x; printf('dose arithmo'); scanf('%f',&x); } meta tiponeis printf('arithmoi = %f', numbers); printf('mesos oros = %f', sum/numbers); printf('max=%f',max); printf('min=%f',min); δεν δέχεται τις τιμές των μεταβλητων...βγάζει error was not declared in this scope 7 λεπτά πριν, mariamx83 είπε δεν δέχεται τις τιμές των μεταβλητων...βγάζει error was not declared in this scope δούλεψε αλλά δεν μου βγάζει σωστά το μέσο όρο Επεξ/σία 29 Νοεμβρίου 2020 από mariamx83
Vista32 Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 (επεξεργασμένο) 5 ώρες πριν, mariamx83 είπε δούλεψε αλλά δεν μου βγάζει σωστά το μέσο όρο mesos_oros=(float)sum/numbers; (Πρέπει να μετατρέψεις σε float, όπως γίνεται εδώ, αν τα sum και numbers τα έχεις δηλώσει ως integers.) printf("O mesos oros einai %.2f", mesos_oros); (Για να σου τυπωθεί με δύο δεκαδικά.) Επεξ/σία 30 Νοεμβρίου 2020 από Vista32
Lanike71 Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 (επεξεργασμένο) @k33theod Επειδή αναφέρθηκε ότι δε μπορεί να γίνει με do while, προσωπικά βρίσκω πιο κομψή τη λύση με χρήση μίας boolean μεταβλητής που θα ελέγχει κάθε φορά αν έφτασε η ώρα για έξοδο από τη λούπα. Προσωπικά, μου χτυπάει άσχημα στο μάτι που πρέπει σε 2 σημεία στον κώδικα να γίνει είσοδος από πληκτρολόγιο. Σε java θα έκανα το παρακάτω: boolean procedure = true; int num; int sum = 0; do { Scanner console = new Scanner(System.in); System.out.println("Enter number :"); num = console.nextInt(); if(num == -99) procedure = false; else { sum = sum + num; } } while(procedure); System.out.println(sum); Επεξ/σία 30 Νοεμβρίου 2020 από Lanike71
k33theod Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 (επεξεργασμένο) 1 ώρα πριν, Lanike71 είπε @k33theod Επειδή αναφέρθηκε ότι δε μπορεί να γίνει με do while, προσωπικά βρίσκω πιο κομψή τη λύση με χρήση μίας boolean μεταβλητής που θα ελέγχει κάθε φορά αν έφτασε η ώρα για έξοδο από τη λούπα. Προσωπικά, μου χτυπάει άσχημα στο μάτι που πρέπει σε 2 σημεία στον κώδικα να γίνει είσοδος από πληκτρολόγιο. Σε java θα έκανα το παρακάτω: do { Scanner console = new Scanner(System.in); System.out.println("Enter number :"); num = console.nextInt(); if(num == -99) procedure = false; else { sum = sum + num; } } while(procedure); Σίγουρα γίνεται και με do while ή με απειρο for και if και με διάφορους άλλους τρόπους. Όλα γίνονται. Απλά λέω το πιο ενδεδειγμένο (κατά τη γνώμη μου) χωρίς να σημαίνει ότι κάτι άλλο λάθος. Στο δικό σου παράδειγμα το system.print θα εκτελεστεί σε κάθε περίπτωση, ενώ στην εκφώνηση λέει αν δώσει κατευθείαν -99 να μην τυπώσει τίποτα. Αυτό προφανώς θέλει if epanalipseis = 0 kai x = -99 return Επεξ/σία 30 Νοεμβρίου 2020 από k33theod
bjj-p Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 18 ώρες πριν, mariamx83 είπε Προσοχή: ΑΝ ο πελάτης δώσει αμέσως το -99, το πρόγραμμα δεν πρέπει να του λέει ΤΙΠΟΤΑ από τα 1, 2, 3 και 4. υπαρχουν 2 while εκφρασεις για να υλοποιησεις μια επαναληψη. Δες τις διαφορες τους και χρησιμοποιησε οποια θεωρεις καταλληλοτερη καθε φορα.
Lanike71 Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 Αν θυμάμαι καλά από τη θεωρία, όταν πρέπει αναγκαστικά να εκτελεστεί έστω και μία φορά η λούπα, χωρίς να ξέρεις το πόσες, πρέπει να πας με do...while. Αν δεν κάνω λάθος.
k33theod Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 1 ώρα πριν, Lanike71 είπε Αν θυμάμαι καλά από τη θεωρία, όταν πρέπει αναγκαστικά να εκτελεστεί έστω και μία φορά η λούπα, χωρίς να ξέρεις το πόσες, πρέπει να πας με do...while. Αν δεν κάνω λάθος. Έτσι είναι. Και εδώ είναι μια περίτπωση που δεν θέλουμε το περιέχομενο του while να εκτελεστεί τουλάχιστον μία φορά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα