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

C++ πρόβλημα


hackertom

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

Δημοσ.

θέλω να φτιάξω ένα δισδιάστατο πίνακα A 4x4 να βρω το μέσο όρο τον στοιχείων και να το τυπώσω....

Δημοσ.

Το παλεψες καθολου;

 

Εχεις φτασει σε καποιο σημειο και εχεις κολλησει;

 

Αν ζητας απλα την λυση sorry αλλα δεν...τουλαχιστον εγω.

 

Αν βρεθει καποιος που γουσταρει να του δωσω και εγω 6 ασκησεις που εχω...

ΕΛΕΟΣ!!!!

Δημοσ.

hackertom δε ξερω αν εισαι παλιος η νεος στο forum αλλα θα πρεπε να ξερεις οτι δεν βοηθαει κανεις εδω μεσα αμα δεν δειξεις και συ οτι εχεις κανει κατι.Γιατι δλδ να μπει καποιος στο κοπο να σου λυσει το προβλημα οταν βλεπει οτι εσυ δεν εχεις κανει τιποτα αλλα ζητας απλα την λυση?

Δημοσ.
hackertom δε ξερω αν εισαι παλιος η νεος στο forum αλλα θα πρεπε να ξερεις οτι δεν βοηθαει κανεις εδω μεσα αμα δεν δειξεις και συ οτι εχεις κανει κατι.Γιατι δλδ να μπει καποιος στο κοπο να σου λυσει το προβλημα οταν βλεπει οτι εσυ δεν εχεις κανει τιποτα αλλα ζητας απλα την λυση?

 

δεν είπα ότι δεν έχω κάνει κάτι και θα ποστάρω αυτό που άρχισα να κάνω άλλα με πειράζει η ειρωνεία κάποιον που το παίζουν έξυπνοι εδώ μέσα νομίζω αυτό δεν αρέσει σε κανένα μάς και το forum σχεδιάστηκε να δίνει λύσεις!

 

---------- Προσθήκη στις 22:59 ---------- Προηγούμενο μήνυμα στις 22:42 ----------

 

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

 

int Α [4][4];

int arraysize = 4;

int i, j, counter = 1;

for (i = 0; i < arraysize; i++) {

for (j = 0; j < arraysize; j++) {

Α [j] = counter;

counter++;

cout << Α [j] << “ “;

}

cout << endl;

}

 

δεν γνωρίζω πώς να βρω το μέσο όρο των στοιχείων και να το συντάξω στον κώδικα (λογικά ο μέσος όρος πρέπει να είναι 136) το θέμα είναι πώς το κάνει μόνος του ο κώδικας

Δημοσ.

Έι, όχι flames!

 

 

δεν γνωρίζω πώς να βρω το μέσο όρο των στοιχείων και να το συντάξω στον κώδικα

 

1. Ξαναδιατρέχεις τον πίνακα με ένα διπλό for loop, μέσα στο οποίο θα «μαζεύεις» προσθετικά τις τιμές των στοιχείων του πίνακα σε μία επιπλέον μεταβλητή

2. Έξω από το loop, διαιρείς τη μεταβλητή αυτή με το πλήθος των στοιχείων του πίνακα

Δημοσ.
δεν είπα ότι δεν έχω κάνει κάτι και θα ποστάρω αυτό που άρχισα να κάνω άλλα με πειράζει η ειρωνεία κάποιον που το παίζουν έξυπνοι εδώ μέσα νομίζω αυτό δεν αρέσει σε κανένα μάς και το forum σχεδιάστηκε να δίνει λύσεις!

 

---------- Προσθήκη στις 22:59 ---------- Προηγούμενο μήνυμα στις 22:42 ----------

 

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

 

int Α [4][4];

int arraysize = 4;

int i, j, counter = 1;

for (i = 0; i < arraysize; i++) {

for (j = 0; j < arraysize; j++) {

Α [j] = counter;

counter++;

cout << Α [j] << “ “;

}

cout << endl;

}

 

δεν γνωρίζω πώς να βρω το μέσο όρο των στοιχείων και να το συντάξω στον κώδικα

 

Αν είχες γράψει τον κώδικά σου από το πρώτο σου ποστ τότε δε θα είχες καμιά ειρωνεία. Δεν είναι κάτι προσωπικό αλλά έχει παραγίνει τελευταία το κακό με όλους τους φοιτητές που δίνουν την εκφώνηση της άσκησής τους και περιμένουν και απαιτούν ΣΩΣΤΗ και ΕΤΟΙΜΗ απάντηση προκειμένου να πάρουν το 10αρι στην άσκηση.

 

Αυτό που κάνεις στη λύση είναι να γεμίζεις τον πίνακά σου με τιμές από το 1 μέχρι το 16 και να εμφανίζεις και ένα ένα τα στοιχεία (χαίρω πολύ θα μου πείς αλλά αρκετοί ίσως δεν καταλαβαίνουν - και εγώ ορισμένες φορές- τον κώδικα που γράφουν).

 

 

Τώρα το μόνο που έχεις να κάνεις είναι να σκεφτείς τι είναι ο μέσος όρος. Είναι το άθροισμά όλων των στοιχείων σου δια το πλήθος των στοιχείων. Έτσι λοιπόν αρκούν 4 γραμμές στον κώδικά σου και έχεις την απάντηση:

 

nt Α [4][4];

int arraysize = 4;

int i, j, counter = 1;

int sum=0;

float mo;

for (i = 0; i < arraysize; i++) {

for (j = 0; j < arraysize; j++) {

Α [j] = counter;

counter++;

sum=sum+A[j];

cout << Α [j] << “ “;

}

cout << endl;

}

mo=sum/16;

cout<<mo;

 

Επίσης το arraysize καλό είναι να το βάλεις ως σταθερά, αφού δεν αλλάζει το μέγεθός του (είτε ως static int εκεί που το έχεις είτε ως DEFINE arraysize 4 πάνω πάνω στην κλήση των βιβλιοθηκών - τα include)

Δημοσ.
Αν είχες γράψει τον κώδικά σου από το πρώτο σου ποστ τότε δε θα είχες καμιά ειρωνεία. Δεν είναι κάτι προσωπικό αλλά έχει παραγίνει τελευταία το κακό με όλους τους φοιτητές που δίνουν την εκφώνηση της άσκησής τους και περιμένουν και απαιτούν ΣΩΣΤΗ και ΕΤΟΙΜΗ απάντηση προκειμένου να πάρουν το 10αρι στην άσκηση.

 

Αυτό που κάνεις στη λύση είναι να γεμίζεις τον πίνακά σου με τιμές από το 1 μέχρι το 16 και να εμφανίζεις και ένα ένα τα στοιχεία (χαίρω πολύ θα μου πείς αλλά αρκετοί ίσως δεν καταλαβαίνουν - και εγώ ορισμένες φορές- τον κώδικα που γράφουν).

 

Τώρα το μόνο που έχεις να κάνεις είναι να σκεφτείς τι είναι ο μέσος όρος. Είναι το άθροισμά όλων των στοιχείων σου δια το πλήθος των στοιχείων. Έτσι λοιπόν αρκούν 4 γραμμές στον κώδικά σου και έχεις την απάντηση:

 

nt Α [4][4];

int arraysize = 4;

int i, j, counter = 1;

int sum=0;

float mo;

for (i = 0; i < arraysize; i++) {

for (j = 0; j < arraysize; j++) {

Α [j] = counter;

counter++;

sum=sum+A[j];

cout << Α [j] << “ “;

}

cout << endl;

}

mo=sum/16;

 

 

ooo... ευχαριστώ φίλε clevercitizen εγώ είχα την λανθασμένη άποψη να βγάλω το μεσώ όρο μόνο προσθέτοντας τα στοιχειά του πίνακα δηλ ....

 

1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16.......

 

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

και πάλι ευχαριστώ!!!

Δημοσ.
ooo... ευχαριστώ φίλε clevercitizen εγώ είχα την λανθασμένη άποψη να βγάλω το μεσώ όρο μόνο προσθέτοντας τα στοιχειά του πίνακα δηλ ....

 

1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16.......

 

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

και πάλι ευχαριστώ!!!

Για να βγάλεις έναν μέσο όρο δε σε ενδιαφέρει τι θα έχει ο πίνακας, απλώς προσθέτεις όλα τα στοιχεία του

sum=sum+ A[j]

δηλ στην sum προσθέτεις την παλιά τιμή του sum + το επόμενο στοιχείο του πίνακα

ουσιαστικά sum = Α[0][0]+ Α[0][1]+Α[0][2]+Α[0][3]+Α[1][0]+...+Α[3][3]

 

Επίσης, προσοχή γιατί πρέπει να έχεις μηδενίσει αρχικά τη sum γιατί αν δε το κάνεις η sum θα έχει μια τυχαία τιμή και όχι 0. Και ο μέσος όρος να είναι float, αφού κάνεις διαίρεση, αν είναι τύπου int τότε και ο μέσος όρος θα είναι int, κάτι που λογικά δε το θέλεις.

Δημοσ.
Για να βγάλεις έναν μέσο όρο δε σε ενδιαφέρει τι θα έχει ο πίνακας, απλώς προσθέτεις όλα τα στοιχεία του

sum=sum+ A[j]

δηλ στην sum προσθέτεις την παλιά τιμή του sum + το επόμενο στοιχείο του πίνακα

ουσιαστικά sum = Α[0][0]+ Α[0][1]+Α[0][2]+Α[0][3]+Α[1][0]+...+Α[3][3]

 

Επίσης, προσοχή γιατί πρέπει να έχεις μηδενίσει αρχικά τη sum γιατί αν δε το κάνεις η sum θα έχει μια τυχαία τιμή και όχι 0. Και ο μέσος όρος να είναι float, αφού κάνεις διαίρεση, αν είναι τύπου int τότε και ο μέσος όρος θα είναι int, κάτι που λογικά δε το θέλεις.

 

 

κατατοπιστικότατος!!!μιά ερώτηση ακόμα το mo=sum/16; γιατί το έβαλες στο τέλος του κώδικα?θα τυπώσει έτσι σωστά το αποτέλεσμα...??

Δημοσ.
κατατοπιστικότατος!!!μιά ερώτηση ακόμα το mo=sum/16; γιατί το έβαλες στο τέλος του κώδικα?θα τυπώσει έτσι σωστά το αποτέλεσμα...??

 

Δες λίγο το ποστ #7 το έχω αλλάξει λίγο.

Στη μεταβλητή mo αποθηκεύω το μέσο όρο, ο οποίος θα προκύψει από το άθροισμα (sum) ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΕΧΩ ΗΔΗ ΥΠΟΛΟΓΙΣΕΙ (μέσα στα loops των 2 for) δια 16. Δε θες να εμφανίσεις το άθροισμα αλλα τον μέσο όρο

και μετά cout<<mo; και εμφανίζεται ο μέσος όρος

Δημοσ.
int Α [4][4];

int arraysize = 4;

 

Μια μικρή ασήμαντη παρατήρηση... γιατί δεν το κάνεις:

 

>const int arraysize = 4; //const εφόσον δεν πρόκειται να αλλάξει παρακάτω
int A[arraysize][arraysize];

 

φιλικά

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

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

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