vagg77 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Εισαι αρχοντας.Ευχαριστω!!! Ειναι ετικέτες εντος των οποίων βάζεις τον κωδικα σου. Η αρχη ειναι με 2 αγκύλες [] μεσα στις οποιες μπαινει το CODE και στο τελος το ιδιο απλα αυτη τη φορα μεσα στις αγκυλες το CODE ειναι ετσι -> /CODE ΔΕΝ μπορω να το γραψω αλλιως γιατι θα το πιάσει και δεν θα το δεις πχ -> εδω μπαινει ο κωδικας... Το παραπανω το έβαλα ακριβως μετα την ετικετα της αρχής και μολις τελειωσα εβαλα την ετικετα τέλους. Ετικετα αρχης ειναι οτι εγραψα και πιο πανω δηλαδη 2 αγκύλες μεσα στις οποιες ειναι το CODE και ετικετα τέλους το ιδιο απλα αυτη τη φορά /CODE. Αυτο το κανω απο το DevC++ η εδω που φτιαχνω το μηνυμα στην σελιδα?? Και βασικα ηταν και κατι αλλο που δεν σας εβαλα στο κωδικα.Η ασκηση μου ζηταγε να παιρνω αριθμους μεταξυ 1-999 και να βρισκω πραγματα.Μου ζηταγε ομως και να κανω ελεγχο και αν ( α=β η ενας απο τους α,β ηταν μικροτεροι του 1 ή μεγαλυτεροι του 999,να τερματιζει το προγραμμα και να εμφανιζει καταλληλο μνμ).Επειδη ακομα δεν εχω βιβλιο και τα διαβαζω ολα απο σημειωσεις ειχα βαλει : if (a=||(a<1)||(b<1)||(a>999)||(b>999) printf(Doste swstes times); return 0; else και θελω ΟΛΟ το υπολοιπο προγραμμα να συνεχιζει μετα την else. Πως να το κανω ρε παιδια αυτο??? οπου βλεπετε την φατσουλα,ειναι το β 1
imitheos Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Μου ζηταγε ομως και να κανω ελεγχο και αν ( α=β η ενας απο τους α,β ηταν μικροτεροι του 1 ή μεγαλυτεροι του 999,να τερματιζει το προγραμμα και να εμφανιζει καταλληλο μνμ).Επειδη ακομα δεν εχω βιβλιο και τα διαβαζω ολα απο σημειωσεις ειχα βαλει : if (a=||(a<1)||(b<1)||(a>999)||(b>999) printf(Doste swstes times); return 0; else και θελω ΟΛΟ το υπολοιπο προγραμμα να συνεχιζει μετα την else. Πως να το κανω ρε παιδια αυτο??? Παραβλέπω λάθη όπως εισαγωγικά στο printf και λοιπά και ας δούμε αυτό που ρώτησες. Όταν σε if, for, κτλ θέλουμε το σώμα να έχει περισσότερες της μίας δηλώσεις, πρέπει να βάλουμε άγκιστρα. Έτσι όπως το έχεις δηλαδή, όταν η συνθήκη του if είναι σωστή τότε εκτελείται το printf αλλιώς δεν εκτελείται το printf. Το return 0 δεν είναι μέρος του if και εκτελείται πάντα. Για να είναι και τα δύο μέρος του if πρέπει να βάλεις τα άγκιστρα όπως φαίνεται παρακάτω. if (lathos times) { printf("lathos times\n"); return 0; } else { υπόλοιπο πρόγραμμα } Επειδή έχουμε όλο το υπόλοιπο πρόγραμμα (δηλαδή παραπάνω από μία γραμμές) να είναι μέρος της else βάζουμε και εκεί άγκιστρα. Με αυτό το τρόπο όταν δεν έχουν δωθεί σωστές τιμές εμφανίζεται το μήνυμα δώσε σωστές τιμές και μετά το πρόγραμμα σταματά. Αλλιώς (οι τιμές είναι δηλαδή σωστές) εκτελείται το κομμάτι του else. Αυτό γενικά. Η return όμως έχει την ιδιαιτερότητα ότι επιστρέφει από την εκάστοτε συνάρτηση οπότε όσες δηλώσεις υπάρχουν παρακάτω δεν εκτελούνται. Επομένως δεν χρειάζεται να έχουμε το κύριο κώδικα μέσα στην else. if (lathos times) { printf("lathos times\n"); return 0; } υπόλοιπο πρόγραμμα
vagg77 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Ευχαριστω παιδια για την βοηθεια!!! Η Συνθηκη μου λεει οτι ειναι λαθεμενη.WHY??
ZAKKWYLDE Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 προφανώς λόγω του κενού στο if (lathos times) αναμεσα στο lathos και το times εκτός αν εννοείς αυτό: if (a=0)||(a<1)||(b<1)||(a>999)||(b>999) θέλει και ενα ζευγάρι παρενθέσεων να το περικλείει όλο if ((a=0)||(a<1)||(b<1)||(a>999)||(b>999)) Τη λογική της συνθήκης δεν την εξέτασα...αλλά κάτι μου βρωμάει.
Star_Light Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Και μενα πολυ περιπλοκη μου φαινεται η συνθηκη. Καλυτερα να την σπάσει σε επιμέρους. Μου φαινεται τοσο περιπλοκη που δεν θελω καν να κάτσω να την σκεφτώ
albNik Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 προφανώς λόγω του κενού στο if (lathos times) αναμεσα στο lathos και το times εκτός αν εννοείς αυτό: if (a=0)||(a<1)||(b<1)||(a>999)||(b>999) θέλει και ενα ζευγάρι παρενθέσεων να το περικλείει όλο if ((a=0)||(a<1)||(b<1)||(a>999)||(b>999)) Τη λογική της συνθήκης δεν την εξέτασα...αλλά κάτι μου βρωμάει. Ειναι if((a==||(a<1)||(b<1)||(a>999)||(b>999)) Να μην ειναι ισα και να ειναι μεταξύ 1 και 999
migf1 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Δεν χρειάζονται τόσες παρενθέσεις. if ( a == b || a < 1 || b < 1 || a > 999 || b > 999 ) { // mh apodekth timh toy a h toy b return 1; } // kanena problhma, synexizoyme kanonika 3
ZAKKWYLDE Δημοσ. 27 Οκτωβρίου 2013 Δημοσ. 27 Οκτωβρίου 2013 (επεξεργασμένο) Φυσικά έχε υπόψη σου απο τώρα ότι το να πετάς ενδιάμεσα σε functions return statements έχει τους κινδύνους του. Π.χ. μπορεί να έχεις δεσμεύσει μνήμη κάποια στιγμή πιο πριν, να έχεις ανοίξει ένα αρχείο κτλ. Αυτά πρέπει να ελευθερωθούν πριν οποιοδήποτε return. Θα τα δεις στη πορεία όμως. Επεξ/σία 27 Οκτωβρίου 2013 από ZAKKWYLDE
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα