Γιώργος
Τιμώμενο Μέλος
Χαίρω πολύ, κι εγώ. Όλα τα βιβλία αυτό λένε, αλλά σε κανέναν δεν έχει δουλέψει.Δεν την έχω χρειαστεί ποτέ εγώ αλλά την έχω δει σε βιβλίο C για καθαρισμό της scanf
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Καλά, δοκίμασέ το κι άμα σου πιάσει πόσταρε κώδικα.Γίνεται νομίζω και έτσι απλά η fflush θέλει λίγο προσοχή να ξέρεις τι δεδομένα σου διώχνει.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Ωραία, πες μας πρώτα τι δεν κατάλαβες απ' αυτά που εξηγήσαμε και δείξε τι προσπάθεια έχεις κάνει και πού έχεις κολλήσει. Συγκεκριμένα, δηλαδή, πού είναι το πρόβλημά σου.Παιδιά είμαι 1 ετής κ ακόμα δεν την καταλαβαίνω... την έχω προσπαθήσει πολύ αλλα τπτ
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Μονοδιάστατος πίνακας, έτσι; Λοιπόν, βασικό tip για την άσκηση: η δομή σου είναι ΜΟΝΟ-διάσταση, αλλά το παιχνίδι είναι ΔΙ-διάστατο. Δεν επιτρέπεται μεν να χρησιμοποιήσεις άλλο πίνακα, δεκτό, αλλά κανείς δεν σου απαγορεύει να φτιάξεις ένα... mapping.σας παρακαλω θα ηθελα να με βοηθησετε να λυσω αυτη την ασκηση διοτι πρεπει να την παραδωσω μεχρι την πεμπτη.στο παρακατω αρχειο βρισκεται η εκφωνηση (ο πίνακας είναι μονοδιάστατος)
Με λίγα λόγια, ορίζεις μία συνάρτηση:
- int loc( int x , int y ), η οποία παίρνει τις διαστάσεις (x,y) και επιστρέφει ένα μόνο index, για τον μονοδιάστατο πίνακα.
- Μπορεί να χρειαστεί να φτιάξεις και μία αντίστροφη, η οποία να παίρνει το μονοδιάστατο i και να επιστρέφει δύο διαστάσεις.
Διάβασε αυτό που έγραψα ξανά και ξανά αν δεν το κατάλαβες με την πρώτη.
Εάν θέλεις διευκρινήσεις, ρωτάς. Η υλοποίηση της loc, αφήνεται σε εσένα.
Επίσης, μπορείς να μας παραθέσεις τον μέχρι τώρα κώδικά σου (με καλή στοίχηση) και/ή να μας πεις ακριβώς πού προβληματίζεσαι, σε ποια σημεία. Έτοιμο κώδικα μην περιμένεις - από εμένα τουλάχιστον - γιατί το βρίσκω αντιεκπαιδευτικό. Μόνη σου θα γράψεις την άσκηση, εν τέλει, αλλά αν θελήσεις βοήθεια ρωτάς.
-----
PS: προσοχή, κατά την υλοποίηση της loc, να μην βγεις out of bounds.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Για δοκίμασε να το κάνεις ως εξής:Εχω ενα προγραμμα και διαβαζω ενα αρχειο:
Για καποιο λογο δε διαβαζει την τελευταια λεξη του αρχειου.Εχω κανει ο,τι λεει το βιβλιο και οι σημειωσεις του καθηγητη.Τι φταιει?Code:...Εντολες.... fscanf(file,"%s",word); while(!feof(file)){ ....Εντολες.... fscanf(file,"%s",word); }
...Εντολες....
do {
fscanf(file,"%s",word);
....Εντολες....
} while(!feof(file));
Δηλαδή, διαβάζεις την τελευταία γραμμή μεν, αλλά στην ανακύκλωση του while "χτυπά" το eof, οπότε ποτέ δεν μπαίνει στην επεξεργασία. Είναι wild guess που έκανα τώρα, δοκίμασέ το να δεις.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Ή εναλλακτικά, σκέφτεται κάποιον άλλον τρόπο.Αν γίνεται με κάποιο τρόπο ίσως με function pointer, δεν το χω δοκιμάσει βέβαια απλά δες το μπας και.
Function pointers και παρόμοια πράγματα είναι για μένα "χακιές" που απλά επιτρέπει η C. Η δουλειά μπορεί να γίνει και με πιο εύκολο τρόπο, συνήθως. Χώρια που ένα τέτοιο πρόγραμμα θα είναι δύσκολο στη συντήρηση.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Και μάλιστα βλέπω ότι η εκφώνηση σε καθοδηγεί πώς θα το κάνεις. Ξαναδιάβασέ την καλά και προσεκτικά.ΤΤο πρόγραμμα κα πρεπει να είναι οργανωμενο ωσ εξης: Να εχει συναρτηση main με βρόχο επανάληψης κατά τον οποίο
να εισάγεται η επιλογη του χρηστη (ξεχωριστη συναρτηση) και ανάλογα με την
επιλογη, θα τερματίζεται ο βρόχος ή θα καλείται αντίστοιχη συναρτηση εκτυπωσης. Θα
πρεπει να αντιστοιχεί μια συνάρτηση στην εκτύπωση του κάθε είδους σχήματος.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Αν δώσεις ένα ψάρι σ' έναν άνθρωπο θα φάει μια φορά. Αν του μάθεις να ψαρεύει θα τρώει σ' όλη του τη ζωή.αμα μπορειτε να τον βοηθησετε εντελώς γιατι να μην το κανετε?
Χάνεις συνήθως τμήμα της βαθμολογίας.μου δημιουργηθηκε απορια αμα δεν καταφερεις να την λυσεις τι γινεται? εννοω στο σχολειο δεν γινεται και τιποτα..να μην λυσουμε μια ασκηση...στο πανεπιστημιο ετσι παει?
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Τι ακριβώς έχεις κάνει έως τώρα, πού κόλλησες και τι σε προβληματίζει;Την παρακατω ασκηση μας την εχουν βαλει στην σχολη.Ειναι σε γλωσσα προγραμματισμου C. Μηπως μπορει να βοηθησει καποιος?
Την δούλεψες καθόλου; Προχώρησες ό,τι μπορούσες;
Μην περιμένεις να τα πάρεις όλα στο πιάτο. Τουλάχιστον από μένα.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Μου μυρίζει για Segmentation Fault. Κάπου πιθανώς να διαβάζεις εκτός ορίων πίνακα ή εν γένει προσπαθείς να προσπελάσεις μνήμη που δεν σου ανήκει.Εχεις δικιο...κατα την εκτελεση.
Μπορεις να με προσανατολίσεις για το που βρισκεται το προβλημα γιατι σε λιγο τελειωνει η προθεσμια;
Μία καλή λύση για εύκολο debugging είναι η χρήση του gdb. Γράφεις (αν a.out είναι το εκτελέσιμό σου)
gdb ./a.out
Στο debugging βοηθάει εάν κατά το compile ανεβάσεις και το flag -g.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
int **pointer,m,i;
pointer=malloc(m*sizeof(int *));
for(i=0;i<m;i++)
{
pointer=malloc(m*sizeof(int));
}
scanf("%d",m);
Αυτο το τμημα κωδικα ειναι σωστο αν θελω να κανω ενα δεικτη που θα δειχνει στην αρχη ενος πινακα δεικτων που το μεγεθος του θα εξαρταται απο την τιμη του m και ο καθε δεικτης αυτου του πινακα να δειχνει σε ενα αλλο πινακα ακεραιων ο καθενας(το μεγεθος του εξαρταται απο τη τιμη m επισης);
Τι ρωτάς αν είναι σωστό ή όχι; Δοκίμασε και δες.
PS: λογικά θα χρειαστείς ένα explicit cast στο αποτέλεσμα που γυρνάει η malloc.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Έπειτα, σκεφτείτε λίγο πώς μπορείτε να δείτε αν ένας αριθμός είναι ακέραιος ή όχι (hint, hint, έχει δεκαδικά; )
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Τότε θα πρέπει να διαβάζεις έναν float. Αν διαβάζεις int, you can't tell the original input, since it will be casted to (int).Να πληκτρολογει εναν αριθμο και αν δεν ειναι ακεραιος να πληκτρολογει καταλληλο μυνημα.
Δηλαδή αν έχεις int και δώσει ο άλλος 2.4, θα γίνει cast σε 2. So, you need to read floats.
Κι από εκεί κοιτάς αν κόβοντας τα δεκαδικά παίρνεις τον ίδιο αριθμό.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
C file input/output.Που θα βρω τα περιεχόμενα των βιβλιοθηκών; (stdio πχ τί περιέχει) Έχω βρει κάποια πράγματα αλλά δεν είναι και πολύ κατατοπιστικά.. και επίσης αν βρείτε τίποτα που να εξηγεί τί κάνει κάθε συνάρτηση των βιβλιοθηκών..
Σε αυτά, google is your friend.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.