iBookG4user
Πρωτότυπη αφίσα- 27 Ιουνίου 2006
- Σιάτλ, Ουάσιγκτον
- 20 Σεπτεμβρίου 2009
«Γράψτε μια συνάρτηση που θα γεμίσει έναν πίνακα με 25 τυχαίους αριθμούς μεταξύ 1 και 10. Στη συνέχεια γράψτε μια συνάρτηση που θα εκτυπώσει τον πίνακα. Γράψτε κάποιο κώδικα στο main για να δοκιμάσετε τις λειτουργίες σας. Μερικές φορές αυτός ο κωδικός δοκιμής ονομάζεται *πρόγραμμα οδήγησης
Μην χρησιμοποιείτε καθολικές μεταβλητές εδώ. Περάστε τον πίνακα στη συνάρτηση μέσω της λίστας παραμέτρων'
Ο τρέχων κώδικας μου δεν οδηγεί σε σφάλματα στον εντοπισμό σφαλμάτων, αλλά δεν βγάζει τον πίνακα. Και δεν ξέρω τι εννοεί γράφοντας τον οδηγό, τι πρέπει να δοκιμάσω; Έχετε αποδειχτεί όλοι εξαιρετικά χρήσιμοι στο παρελθόν και είμαι σίγουρος ότι θα με βοηθήσετε να δείξω τη σωστή κατεύθυνση αυτή τη φορά
Κωδικός: |_+_|
lee1210
- 10 Ιανουαρίου 2005
- Ντάλας, Τέξας
- 20 Σεπτεμβρίου 2009
Επίσης, και είμαι σίγουρος ότι είναι ένα ειλικρινές λάθος, είμαι σίγουρος ότι εννοούσε ο καθηγητής σας ψευδής- τυχαίος.
Επίσης, κατά κύριο λόγο, δηλώνετε νέα διπλά() και δεν επικαλείτε παραγωγή και εκτύπωση. Αφαιρέστε το διπλό εκεί και περάστε σε ένα επιχείρημα όπως συζητήθηκε παραπάνω και αλλάξτε τον τύπο επιστροφής και των δύο σε void.
-Ανάγνωση
gnasher729
Ανασταλεί
- 25 Νοεμβρίου 2005
- 20 Σεπτεμβρίου 2009
Και πώς θα γράφατε μια κλήση στη συνάρτηση «παραγωγή»;
Και μέσα στην «κύρια» συνάρτησή σας, ποια από τις δύο έχετε γράψει, ένα πρωτότυπο συνάρτησης ή μια κλήση συνάρτησης;
iBookG4user
Πρωτότυπη αφίσα- 27 Ιουνίου 2006
- Σιάτλ, Ουάσιγκτον
- 20 Σεπτεμβρίου 2009
lee1210 είπε: Μερικά πράγματα: Ο πίνακας σας πρέπει να είναι τύπου int[], όχι διπλός[]. Πρέπει να αποδεχτείτε έναν πίνακα int για παραγωγή και εκτύπωση. Πρέπει να δηλώσετε ένα int[] στο main, να το περάσετε για παραγωγή, να το συμπληρώσετε εκεί και μετά να το περάσετε για εκτύπωση. ο<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Επίσης, και είμαι σίγουρος ότι είναι ένα ειλικρινές λάθος, είμαι σίγουρος ότι εννοούσε ο καθηγητής σας ψευδής- τυχαίος.
Επίσης, κατά κύριο λόγο, δηλώνετε νέα διπλά() και δεν επικαλείτε παραγωγή και εκτύπωση. Αφαιρέστε το διπλό εκεί και περάστε σε ένα επιχείρημα όπως συζητήθηκε παραπάνω και αλλάξτε τον τύπο επιστροφής και των δύο σε void.
-Ανάγνωση
Εντάξει, έκανα τις αλλαγές που πρότεινες και ο κώδικας φαίνεται πιο λογικός. Αν και τώρα λαμβάνω τρία σφάλματα στους βρόχους for.
Κωδικός: |_+_|
Συνημμένα
lee1210
- 10 Ιανουαρίου 2005
- Ντάλας, Τέξας
- 20 Σεπτεμβρίου 2009
Νομίζω ότι η πρόθεση είναι να καλέσετε την εκτύπωση πίσω στην κύρια, κάτι που θα ήταν εντάξει.
Επίσης, όταν περνάτε πίνακα για παραγωγή, απλώς χρησιμοποιήστε πίνακα και όχι * array.
-Ανάγνωση
iBookG4user
Πρωτότυπη αφίσα- 27 Ιουνίου 2006
- Σιάτλ, Ουάσιγκτον
- 20 Σεπτεμβρίου 2009
lee1210 είπε: Αλλάξτε τον τύπο ορίσματος παραγωγής σε int[] ή int *. Αυτήν τη στιγμή είναι απλώς int, επομένως δεν μπορείτε να χρησιμοποιήσετε το [], κ.λπ. Το ίδιο ισχύει και για την εκτύπωση. Επίσης, δεν χρειάζεται να επιστρέψετε τίποτα από παραγωγή ή εκτύπωση. Αλλάξτε τον τύπο επιστροφής τους σε void.
Νομίζω ότι η πρόθεση είναι να καλέσετε την εκτύπωση πίσω στην κύρια, κάτι που θα ήταν εντάξει.
Επίσης, όταν περνάτε πίνακα για παραγωγή, απλώς χρησιμοποιήστε πίνακα και όχι * array.
-Ανάγνωση
Δούλεψε
Τώρα, ξέρετε τι εννοούσε γράφοντας τον κώδικα για να δοκιμάσετε τις συναρτήσεις; Τι εννοεί με αυτό; Και ευχαριστώ πολύ για τη βοήθειά σας μέχρι τώρα!
Κωδικός: |_+_|
chown33
Μεσολαβητής
Μέλος του προσωπικού- 9 Αυγούστου 2009
- το αβυσσαλέο αεροπλάνο
- 20 Σεπτεμβρίου 2009
Το iBookG4user είπε: Τώρα, ξέρετε τι εννοούσε γράφοντας τον κώδικα για να δοκιμάσετε τις λειτουργίες; Τι εννοεί με αυτό;
Η προδιαγραφή έλεγε ότι οι αριθμοί στον πίνακα πρέπει να είναι μεταξύ 1 και 10. Θα μπορούσατε να γράψετε μια δοκιμή που να το επιβεβαιώνει.
Είπε επίσης ότι οι αριθμοί πρέπει να είναι τυχαίοι. Ενώ η τυχαιότητα μπορεί να είναι πιο δύσκολο να δοκιμαστεί από όσο φαίνεται, η απλή μη τυχαιότητα μπορεί να είναι εύκολο να δοκιμαστεί. Το πιο απλό είναι να επιβεβαιώσετε ότι όλοι οι αριθμοί δεν έχουν την ίδια τιμή. Πιο πολύπλοκα τεστ τυχαιότητας χρησιμοποιούν στατιστικές αναλύσεις.
Μια άλλη δοκιμή που μπορείτε να γράψετε είναι να επιβεβαιώσετε ότι η συνάρτηση produce() επιστρέφει διαφορετικές τιμές κάθε φορά που καλείται. Αυτή είναι μια απλή μορφή στατιστικής ανάλυσης, δηλαδή η διασφάλιση ότι οι διαδοχικές επικλήσεις έχουν ανεξάρτητα αποτελέσματα.
Θα πρέπει επίσης να εξετάσετε το ενδεχόμενο προετοιμασίας του πίνακα με γνωστές μη έγκυρες τιμές, όπως -1 ή 0, πριν καλέσετε την product(). Διαφορετικά, ένας μη αρχικοποιημένος τοπικός πίνακας μπορεί να περιέχει ήδη απρόβλεπτες τιμές, τις οποίες ένα τεστ θα μπορούσε να ερμηνεύσει ως τυχαίες ακόμα κι αν η product() δεν κάνει απολύτως τίποτα.
Ως προδιαγραφή, η δήλωση εργασίας είναι κάπως ασαφής. Πρώτον, δεν προσδιορίζει ποιες εξετάσεις πρέπει να περάσει. Πιστέψτε με, αν αφήσετε στους περισσότερους προγραμματιστές να επιλέξουν τα τεστ προσόντων, είναι μεγάλο λάθος. Ο κώδικας μπορεί να λειτουργήσει μόνο σε μία περίπτωση, η οποία ήταν η περίπτωση που ο προγραμματιστής χρησιμοποίησε για να αναπτύξει τον κώδικα. Αν αυτό φαίνεται τρελό, μπορώ να σας διαβεβαιώσω ότι συνέβη.
iBookG4user
Πρωτότυπη αφίσα- 27 Ιουνίου 2006
- Σιάτλ, Ουάσιγκτον
- 20 Σεπτεμβρίου 2009
Αυτό λειτούργησε καλά:
Κωδικός: |_+_| μικρό
Τριβείο
προς το
- 24 Απριλίου 2008
- 21 Σεπτεμβρίου 2009
Το iBookG4user είπε: Ήταν αρκετά απλό, ευχαριστώ!
Αυτό λειτούργησε καλά:
Προσπαθήστε να βάλετε έναν «μη έγκυρο» αριθμό στον πίνακα σας (ας πούμε, 11) και δείτε εάν αυτή η συνάρτηση το εντοπίζει.
iBookG4user
Πρωτότυπη αφίσα- 27 Ιουνίου 2006
- Σιάτλ, Ουάσιγκτον
- 21 Σεπτεμβρίου 2009
Ο Sander είπε: Προσπαθήστε να βάλετε έναν «μη έγκυρο» αριθμό στον πίνακα σας (ας πούμε, 11) και δείτε αν αυτή η συνάρτηση το εντοπίζει.
Ρύθμισα προσωρινά τον πίνακα ώστε να επιτρέπει αριθμούς μεγαλύτερους από 10 και τον εντόπισε, ευχαριστώ μικρό
Τριβείο
προς το
- 24 Απριλίου 2008
- 22 Σεπτεμβρίου 2009
Το iBookG4user είπε: Ρύθμισα προσωρινά τον πίνακα ώστε να επιτρέπει αριθμούς μεγαλύτερους από 10 και τον εντόπισε, ευχαριστώ
Ακόμα κι αν δεν είναι το πρώτο στοιχείο στον πίνακα..;
Ο λόγος που ρωτάω είναι επειδή η συνάρτηση print() (τουλάχιστον η τελευταία έκδοση που εμφανίζεται σε αυτό το νήμα) επιστρέφει μόνο το πρώτο στοιχείο του πίνακα (μετατροπή σε διπλό).
Δημοφιλείς Αναρτήσεις