Δημοσιεύτηκε: 01 Δεκ 2011, 21:51
από migf1
hacker71 έγραψε:Ok file m kanena provlima ,perimenw. gia na s dwsw na katalaveis egw prepei na kanw auto :
Spoiler: show
Τώρα που οι πινακίδες είναι ταξινομημένες, αν υπάρχουν πολλαπλές καταχωρήσεις για το ίδιο όχημα, θα
πρέπει να είναι σε διαδοχικές θέσεις του πίνακα. Σκοπός μας είναι να σβήσουμε όλες τις διπλο-
καταχωρήσεις εκτός από μία, στην οποία θα αντιστοιχεί το συνολικό ποσό που οφείλει αυτό το αυτοκίνητο.
Ας υποθέσουμε πως έχετε εντοπίσει ότι οι καταχωρήσεις ανάμεσα στις θέσεις start και end αναφέρονται
όλες στο ίδιο όχημα. Γράψτε αρχικά μια βοηθητική συνάρτηση η οποία παίρνει ως παραμέτρους τον πίνακα
οφειλών και τις θέσεις start και end κι επιστρέφει το άθροισμα των οφειλών για αυτές τις θέσεις.
Ακολούθως, γράψτε μια συνάρτηση που διατρέχει τον πίνακα πινακίδων, εντοπίζει διαδοχικές θέσεις με την
ίδια πινακίδα και τις σβήνει όλες εκτός από μία. Το ίδιο φυσικά γίνεται και στον πίνακα οφειλών στον οποίο
όμως θα αποθηκευτεί το σύνολο των οφειλών (χρησιμοποιήστε τη βοηθητική συνάρτηση).
Μπορείτε είτε να μαρκάρετε τις κενές θέσεις ως "άδειες" ή να μετακινήσετε τα επόμενα κελιά στα
αριστερά , όσες θέσεις χρειάζεται.


Τελικά ξανάμπλεξα με τη δουλειά και πριν από λίγο ευκαίρησα να το κοιτάξω.

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

Σου έχω γράψει αναλυτικά σχόλια στα Ελληνικά πάνω από κάθε συνάρτηση (και Αγγλικά one-liners μέσα στις συναρτήσεις). Θεωρώ πως ο πίνακας από strings όταν δεν είναι γεμάτος έχει συνεχόμενα κενά strings στο τέλος του ( *string == '\0'). Ακολούθησε το παρακάτω link για να δεις τον κώδικα, καθώς και δείγμα από την έξοδό του (κάτω-κάτω)...

Κώδικας: http://ideone.com/pLpHp