Εμφάνιση 1-3 από 3
  1. #1
    Εγγραφή
    08-06-2014
    Ηλικία
    29
    Μηνύματα
    3
    Downloads
    0
    Uploads
    0
    ISP
    Forthnet
    Καλησπερα παιδια εχω αρχισει να διαβαζω την γλωσσα C μονος μου και εχω κολησει σε μια ασκηση που βρηκα σε ενα βιβλιο!


    Να γραφτεί συνάρτηση που να παίρνει σαν παραμέτρους τα στοιχεία ενός
    πίνακα ακεραίων κάνοντας χρήση δεικτών. Ο χρήστης θα δίνει έναν ακέραιο
    και η συνάρτηση θα πρέπει να επιστρέφει τη θέση του πίνακα στην οποία
    βρίσκεται ο ακέραιος αυτός. Αν η τιμή που έδωσε ο χρήστης δεν υπάρχει
    στον πίνακα θα τυπώνεται σχετικό μήνυμα.

    οποιος μπορει ας με βοηθησει.

    Ευχαριστω εκ των προτερων

  2. #2
    Εγγραφή
    28-09-2012
    Μηνύματα
    860
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    2048/512
    ISP
    Forthnet
    Path Level
    Interleaved
    Θα πρέπει να υλοποιήσεις μια συνάρτηση που θα δέχεται ένα δείκτη σε ακέραιο(πίνακα), τον αριθμό των στοιχείων στον πίνακα, καθώς και την τιμή του ακεραίου που θες να ψάξεις. Η συνάρτηση θα επιστρέφει έναν ακέραιο ο οποίος θα αντιπροσωπεύει την θέση(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;
    }
    Στην main του προγράμματος σου θα διαβάζεις απο την στανταρ είσοδο και θα καλείς την συνάρτηση. Προφανώς θα πρέπει να έχεις δηλώσει & γεμίσει ένα πίνακα Ν στοιχείων. Αν η συνάρτηση επιστρέψει -1 εκτυπώνεις το κατάλληλο μύνημα.
    None of our beliefs are quite true; all have at least a penumbra of vagueness and error.
    Bertrand Russell

  3. #3
    Εγγραφή
    02-11-2003
    Περιοχή
    Επαναπατρισθείς στην Αθήνα
    Ηλικία
    49
    Μηνύματα
    56.427
    Downloads
    64
    Uploads
    73
    Τύπος
    VDSL2
    Ταχύτητα
    102400/10240
    ISP
    Vodafone
    Path Level
    Fastpath
    Το παραπάνω είναι μεν σωστό, αλλά δεν κάνει χρήση δεικτών που ζητά η άσκηση.

    Για να γίνει χρήση δεικτών, πρέπει να υλοποιηθεί ως εξής:

    - φτιάχνεις είτε έναν γενικό pointer είτε έναν pointer προς τον τύπο των στοιχείων του πίνακα
    - δίνεις στον pointer αρχική τιμή την address της αρχής του πίνακα (ούτως ή άλλως ο πίνακας είναι pointer στην C)
    - και μετά στην for είτε (αν έκανες γενικό pointer) προχωράς κάθε φορά κατά sizeof(<ο τύπος των στοιχείων του πίνακα>), είτε (αν έκανες pointer προς τον τύπο των στοιχείων του πίνακα) κατά 1
    - διαβάζεις τα στοιχεία κάνοντας dereference της εκάστοτε διεύθυνσης (αν χρησιμοποιήσες γενικό pointer πρέπει σε κάθε dereference να τον κάνεις type casting σε pointer προς τον τύπο των στοιχείων του πίνακα)

Παρόμοια Θέματα

  1. Βοήθεια για άσκηση στο Μάθημα Ήχου
    Από pas2007 στο φόρουμ Εκτός θέματος
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 04-06-14, 19:08
  2. Βοηθεια σε ασκηση με λογικες πυλες.
    Από AkisSylv στο φόρουμ Εκτός θέματος
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 09-12-13, 16:35
  3. Βοήθεια στην άσκηση στη C, για αρχαρίους
    Από sergio στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 15
    Τελευταίο Μήνυμα: 27-11-13, 17:27
  4. Βοηθεια στην C++
    Από tsakos89 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 11-09-13, 10:00

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας