Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, μήπως μπορεί κάποιος να με βοηθήσει στο εξής?

 

Έχω δηλώσει σε μια δομή ενα πίνακα int.  O πίνακας αυτός(table.code), περιέχει ακέραιους κωδικούς.

Θέλω να φτιάξω μια συνάρτηση(change_data()), μεσω της οποίας να μπορώ να αλλάξω τα στοιχεία του παραπάνω πίνακα.

Για παράδειγμα, αν έχω δώσει προηγουμένως τους κωδικούς: 101, 233, 540, μέσω της συνάρτησης, να με ρωτα ποιο στοιχείο(κωδικό) του πίνακα θέλεις να αλλάξεις, οπότε να δίνω το καινούργιο και να μου εμφανίζει την αλλαγή.

 

Δημοσ.

Καλημέρα,

 

Έχεις ορίσει σε μια δομή έναν πίνακα int (δες παρακάτω το υστερόγραφο) ή έχεις ορίσει έναν πίνακα από δομές;

 

Από το ποστ σου καταλαβαίνω πως μάλλον έχεις κάνει το 2ο, δηλαδή...

#define MAX_ELEMS 100
...
typedef struct Domh {
    int code;
    /* τα υπόλοιπα πεδία της δομής */
} Domh;
...
int main( void )
{
    Domh table[ MAX_ELEMS ];  // πίνακας από δομές

    // αρχικοποίησε εδώ τον πίνακά σου με default τιμές στα πεδία του κάθε στοιχείου του
    for (int i=0; i < MAX_ELEMS; i++) {
        table[i].code = /* βάλε εδώ την default τιμή του πεδίου .code */;
        /* βάλε εδώ default τιμές και στα υπόλοιπα πεδία της δομής table[i] */
    }
    ...
    return 0;
}
Αν είναι έτσι, τότε η συνάρτηση που ρωτάς θα πηγαίνει κάπως έτσι...

void change_data( Domh tab[] )
{
    int i = 0;    // το στοιχείο του πίνακα που θέλεις να αλλάξεις
    int code = 0; // η νέα τιμή που θέλεις να δώσεις στο tab[i].code

    /* διάβασε εδώ από το χρήστη τιμές για τα i και code */
    /* και κάνε τες validate πριν τις χρησιμοποιήσεις */

    tab[i].code = code;
} 
ΥΓ. Αν είχες ορίσει σε μια δομή έναν πίνακα από int, που γράφεις στο ποστ σου, τότε θα ήταν κάπως έτσι...

#define MAX_ELEMS  100
...
typedef struct Domh {
    int table[MAX_ELEMS];
    /* τα υπόλοιπα πεδία της δομής */
} Domh;
...
int main( void )
{
    Domh domh;   // η domh είναι μια μεταβλητή τύπου Domh

    /* αρχικοποίηση των πεδίων της δομής με default τιμές */
    for (int i=0; i < MAX_ELEMS; i++) {
        domh.table[i] = /* default τιμή για το κάθε στοιχείο του πίνακα */;
    }
    /* βάζουμε εδώ default τιμές και στα υπόλοιπα πεδία της δομής */
    ...
    return 0;
}
Σε αυτήν την περίπτωση δεν υπάρχει κάποιο πεδίο code.
Δημοσ.

Οπότε είναι το 1ο που σου έγραψα, με μόνη διαφορά πως ο table ορίζεται ως δυναμικός πίνακας (αντί για στατικό που τον όρισα εγώ στο παράδειγμά μου).

Δημοσ.

Οπότε είναι το 1ο που σου έγραψα, με μόνη διαφορά πως ο table ορίζεται ως δυναμικός πίνακας (αντί για στατικό που τον όρισα εγώ στο παράδειγμά μου).

Ακριβώς.

Δημοσ.
void change_data( Domh tab[] )
{
int i = 0; // το στοιχείο του πίνακα που θέλεις να αλλάξεις
int code = 0; // η νέα τιμή που θέλεις να δώσεις στο tab[i].code

/* διάβασε εδώ από το χρήστη τιμές για τα i και code */
/* και κάνε τες validate πριν τις χρησιμοποιήσεις */

tab[i].code = code;
} 

Πως θα γίνει ο έλεγχος του στοιχείου που θέλω να αντικαταστήσω, με το ήδη υπάρχον?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...