Καλησπερα παιδια εχω αρχισει να διαβαζω την γλωσσα C μονος μου και εχω κολησει σε μια ασκηση που βρηκα σε ενα βιβλιο!
Να γραφτεί συνάρτηση που να παίρνει σαν παραμέτρους τα στοιχεία ενός
πίνακα ακεραίων κάνοντας χρήση δεικτών. Ο χρήστης θα δίνει έναν ακέραιο
και η συνάρτηση θα πρέπει να επιστρέφει τη θέση του πίνακα στην οποία
βρίσκεται ο ακέραιος αυτός. Αν η τιμή που έδωσε ο χρήστης δεν υπάρχει
στον πίνακα θα τυπώνεται σχετικό μήνυμα.
οποιος μπορει ας με βοηθησει.
Ευχαριστω εκ των προτερων
Εμφάνιση 1-3 από 3
Θέμα: Βοηθεια με ασκηση στην C
-
08-06-14, 16:34 Βοηθεια με ασκηση στην C #1
-
08-06-14, 17:43 Απάντηση: Βοηθεια με ασκηση στην C #2
Θα πρέπει να υλοποιήσεις μια συνάρτηση που θα δέχεται ένα δείκτη σε ακέραιο(πίνακα), τον αριθμό των στοιχείων στον πίνακα, καθώς και την τιμή του ακεραίου που θες να ψάξεις. Η συνάρτηση θα επιστρέφει έναν ακέραιο ο οποίος θα αντιπροσωπεύει την θέση(index) στην οποία βρέθηκε ο ακέραιος που δόθηκε, ειδάλλως θα επιστρέφει -1.
Κώδικας:int search(int * array, int length, int searchVal) { int i; int pos = -1; for(i = 0; i < length; i++) //Διατρέχουμε όλο τον πίνακα { if (array[i] == searchVal) //Αν η τρέχουσα τιμή είναι ο ζητούμενος ακέραιος αποθήκευσε το τρέχων index. { pos = i; break; } } return pos; }
None of our beliefs are quite true; all have at least a penumbra of vagueness and error.
Bertrand Russell
-
08-06-14, 19:10 Απάντηση: Βοηθεια με ασκηση στην C #3
Το παραπάνω είναι μεν σωστό, αλλά δεν κάνει χρήση δεικτών που ζητά η άσκηση.
Για να γίνει χρήση δεικτών, πρέπει να υλοποιηθεί ως εξής:
- φτιάχνεις είτε έναν γενικό pointer είτε έναν pointer προς τον τύπο των στοιχείων του πίνακα
- δίνεις στον pointer αρχική τιμή την address της αρχής του πίνακα (ούτως ή άλλως ο πίνακας είναι pointer στην C)
- και μετά στην for είτε (αν έκανες γενικό pointer) προχωράς κάθε φορά κατά sizeof(<ο τύπος των στοιχείων του πίνακα>), είτε (αν έκανες pointer προς τον τύπο των στοιχείων του πίνακα) κατά 1
- διαβάζεις τα στοιχεία κάνοντας dereference της εκάστοτε διεύθυνσης (αν χρησιμοποιήσες γενικό pointer πρέπει σε κάθε dereference να τον κάνεις type casting σε pointer προς τον τύπο των στοιχείων του πίνακα)
Παρόμοια Θέματα
-
Βοήθεια για άσκηση στο Μάθημα Ήχου
Από pas2007 στο φόρουμ Εκτός θέματοςΜηνύματα: 0Τελευταίο Μήνυμα: 04-06-14, 19:08 -
Βοηθεια σε ασκηση με λογικες πυλες.
Από AkisSylv στο φόρουμ Εκτός θέματοςΜηνύματα: 1Τελευταίο Μήνυμα: 09-12-13, 16:35 -
Βοήθεια στην άσκηση στη C, για αρχαρίους
Από sergio στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 15Τελευταίο Μήνυμα: 27-11-13, 17:27 -
Βοηθεια στην C++
Από tsakos89 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 2Τελευταίο Μήνυμα: 11-09-13, 10:00
Bookmarks