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

Αποριά σε ασκηση στην C?????


anemelos4

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

Δημοσ.

Επειδη αυτές τις δομές δε τις πηρα με καλό μάτι θα ήθελα λιγη βοηθεια:mad:

 

Ενα μέρος της εκφώνησης λεει:

 

Κατασκευάστε µια δοµή (struct) η οποία εκπροσωπεί το αντικείµενό σας και αποτελείται από όλα τα δεδοµένα που χρειάζονται. δηλώσετε ένα πίνακα από τέτοιες δοµές. Κατασκευάστε µια συνάρτηση InitializeObjects() η οποία δεν παίρνει παραµέτρους, δεν

επιστρέφει τίποτα και στο σώµα της αρχικοποιεί όλα τα αντικείµενα που είναι αποθηκευµένα στον

πίνακα. Χρησιµοποιείστε rand() για να δώσετε τυχαίες - αλλά νόµιµες - τιµές σε

 

Πως γινεται να φτιάξω εναν πινακα με παραπανω απο μια διαφορετικη struct καθως και να αρχικοποιησω τα πεδια καθε struct του πινακα???

 

Thx

Δημοσ.

Θα κάνεις έναν πίνακα τύπου struct <το struct σου> pin[N] και θα τον γεμίσεις. Αφού τον γεμίσεις θα κάνεις μία επανάληψη και θα αρχικοποιείς κάθε αντικείμενο κάπως έτσι:

 

έστω ότι το struct το λέμε node

>struct node pin[N];//Το N είναι καλό να το δηλώσεις με define
int i;
for(i=0;i<N;i++)
pin[i].data = rand()

 

αλλά πες μου, όταν λες να εκπροσωπεί το αντικείμενό σας εννοεί να είναι αυτοαναφερόμενη δομή;

Δημοσ.

Βασικά εγω θα πρεπει να κανω 4 δομες(με 4 πεδια) και να γεμισω ενα πινακα 4 θεσεων με αυτες και μετα να τις αρχικοποιησω μεσο της συνάρτησης ΙntiliazeObjects. Εγω δε καταλαβαινω πως θα γεμίσω έναν πίνακα με 4 διαφορετικες structs και διαφορετικα πεδια!!

Δημοσ.
Επειδη αυτές τις δομές δε τις πηρα με καλό μάτι θα ήθελα λιγη βοηθεια:mad:

 

Ενα μέρος της εκφώνησης λεει:

 

Κατασκευάστε µια δοµή (struct) η οποία εκπροσωπεί το αντικείµενό σας και αποτελείται από όλα τα δεδοµένα που χρειάζονται. δηλώσετε ένα πίνακα από τέτοιες δοµές. Κατασκευάστε µια συνάρτηση InitializeObjects() η οποία δεν παίρνει παραµέτρους, δεν

επιστρέφει τίποτα και στο σώµα της αρχικοποιεί όλα τα αντικείµενα που είναι αποθηκευµένα στον

πίνακα. Χρησιµοποιείστε rand() για να δώσετε τυχαίες - αλλά νόµιµες - τιµές σε

 

Πως γινεται να φτιάξω εναν πινακα με παραπανω απο μια διαφορετικη struct καθως και να αρχικοποιησω τα πεδια καθε struct του πινακα???

 

Thx

 

Σύμφωνα με την εκφώνηση πάντως δεν χρειάζεται διαφορετικά struct, άλλα μόνο ένα

struct.

Και 4 μεταβλητές τύπου του struct που έφτιαξες.

Δημοσ.

Βασικά όντως στην εκφώνηση λέει 1 δομή όχι 4. Τώρα αν θες σονυ και καλά να κάνεις 4 struct σε 1 πίνακα υποθέτω ότι μπορείς να κάνεις έναν void πίνακα, αλλά μάλλον δεν κατάλαβες την εκφώνηση.

Δημοσ.
Βασικα λεει για καθε αντικειμενο οποτε εγω εχω 4 αντικειμενα αλλα θα θελει 4 structs λογικα!

 

Όχι, θέλει ένα struct. Όταν φτιάχνεις ένα struct, μετά μπορεις να το χρησιμοποιήσεις σαν τύπο, όπω πχ ένα int.

 

Που Χου:

>
#include <stdio.h>

struct mitsos
{
    int data;
};

int main()
{

    struct mitsos s1;
    struct mitsos s2;
   //Dimiourgithikan loipon dyo antikeimena

  //kai vazeis times me ton eksis tropo
  s1.data = 321;
  s2.data = 856;


  return 0;
}

 

Σε περίπτωση που το αντικείμενο που δηλώνεις είναι pointer τότε η εκχώρηση δεν γίνεται με το: s1.data = 123, αλλά s1->data = 123.

Δημοσ.
Χμμμ... Και τον πίνακα 4 θέσεων πως θα τον γεμίσω?

 

Να σου δώσω ένα παράδειγμα:

 

>
#include <stdio.h>
//ipothetontas oti exoume to strruct pou xrisimopoihsame sto proigoumeno paradeigma
int main()
{
      struct mitsos array[4];
     array[0].data = 9875;
     array[1].data = 98742;
     array[2].data = 212;
     array[3].data = 89;

      return 0;
}

 

Με αυτόν τον τρόπο μπορείς να γεμίσεις τον πίνακα. Η μόνη διαφορά είναι ότι εσύ πρέπει να χρησιμοποιήσεις την συνάρτηση rand() για να την γεμίσεις...

Για να χρησιμοποιήσεις την συνάρτηση rand() πρέπει να κάνεις include <stdlib.h> .

 

Επίσης στο γέμισμα μπορεις αν θες χρησιμοποιήσεις μια δομή επανάληψης(for, while, ..)

Δημοσ.
Ευχαριστώ παιδια θα το δοκιμάσω αυριο με καθαρο μυαλο και θα επανέλθω αν εχω απορίες ή προβλήματα!!!

 

Good Luck !

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...