defacer Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Το ξέρω ότι είμαι παράξενος αλλά μόνο εμένα μου φαίνεται πολύ άσχημη και δυσανάγνωστη η "ανάποδη" γραφή στα if ? Στη συγκεκριμένη περίπτωση εκτός από υποκειμενικά "άσχημο" είναι και ανούσιο γιατί το i % COUNTBY είναι rvalue και δεν μπορεί να γίνει ανάθεση πάνω του. Κακή επιλογή παραδείγματος.
Star_Light Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Aντιστοιχη διαφωνια υπάρχει και στο αν πρεπει ή οχι να μπαινουν παρενθεσεις στο return . Βεβαια σε κανενα βιβλιο δεν το εχω δει με παρενθεσεις :S
migf1 Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 @defacer: Το παράδειγμα δεν ήταν επιλεγμένο, χρησιμοποίησα ότι είχε ο κώδικας του capoelo. Όταν το χεις κάνει συνήθεια να βάζεις αριστερά τα r-values, το κάνεις παντού. @starlight: Οι παρενθέσεις στο return δεν σε γλιτώνουν από ενδεχόμενο bug, οπότε είναι τελείως άχρηστες (το return είναι εντολή, δεν είναι συνάρτηση... οπως είναι π.χ. η exit() ) 1
Star_Light Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Ναι ακριβως το ιδιο πιστευω και εγω Το return δεν ειναι συνάρτηση .
imitheos Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 @starlight: Οι παρενθέσεις στο return δεν σε γλιτώνουν από ενδεχόμενο bug, οπότε είναι τελείως άχρηστες (το return είναι εντολή, δεν είναι συνάρτηση... οπως είναι π.χ. η exit() ) Εγώ τις βάζω για συνέπεια (και μου φαίνεται και πιο όμορφο με τις παρενθέσεις). Στο return δεν παίζουν ρόλο αλλά στο sizeof όταν έχεις τύπο πρέπει να τις βάλεις. > int k; sizeof(k); <--- Σωστό sizeof k; <--- Σωστό sizeof(int); <--- Σωστό sizeof int; <--- Λάθος Για αυτό το λόγο τις βάζω και στο sizeof και στο return αλλά γενικά έχεις δίκιο ότι δεν παίζουν κανένα ρόλο.
defacer Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 @defacer: Το παράδειγμα δεν ήταν επιλεγμένο, χρησιμοποίησα ότι είχε ο κώδικας του capoelo. Όταν το χεις κάνει συνήθεια να βάζεις αριστερά τα r-values, το κάνεις παντού. Προφανές. Απλά ίσως θα ήταν καλύτερα με λίγο παραπάνω σχολιασμό αφού ο original κώδικας δεν προσφέρεται.
παπι Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Εγώ τις βάζω για συνέπεια (και μου φαίνεται και πιο όμορφο με τις παρενθέσεις). Στο return δεν παίζουν ρόλο αλλά στο sizeof όταν έχεις τύπο πρέπει να τις βάλεις. > int k; sizeof(k); <--- Σωστό sizeof k; <--- Σωστό sizeof(int); <--- Σωστό sizeof int; <--- Λάθος Για αυτό το λόγο τις βάζω και στο sizeof και στο return αλλά γενικά έχεις δίκιο ότι δεν παίζουν κανένα ρόλο. > int i = sizeof sizeof sizeof sizeof i;
imitheos Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 > int i = sizeof sizeof sizeof sizeof i; Δεν κατάλαβα τι μου λες εδώ
migf1 Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Δεν κατάλαβα τι μου λες εδώ Ούτε εγώ κατάλαβα τι εννοεί ο πάπι. Στην εντολή sizeof έχει ουσία να βάζεις πάντα παρενθέσεις, επειδή έτσι καλύπτεις απροβλημάτιστα και τις 2 περιπτώσεις. Δεν είναι δηλαδή περιττή ως λογική. Με το return είναι τελείως περιττές οι παρενθέσεις. Π.χ. δεν καταλαβαίνω όταν λες τις βάζεις για συνέπεια... συνέπεια με τι; ΥΓ. Μου θύμισες κώδικες που έχουν ; μετά από }
imitheos Δημοσ. 19 Σεπτεμβρίου 2012 Δημοσ. 19 Σεπτεμβρίου 2012 Με το return είναι τελείως περιττές οι παρενθέσεις. Ναι για αυτό είπα ότι έχεις δίκιο πως δεν χρειάζονται Π.χ. δεν καταλαβαίνω όταν λες τις βάζεις για συνέπεια... συνέπεια με τι; Μου φαίνεται πιο ωραίο με τις παρενθέσεις και εφόσον βάζω στο sizeof βάζω και στο return. Παραξενιά ΥΓ. Μου θύμισες κώδικες που έχουν ; μετά από } Καλά δεν το πήγα και ως εκεί
capoelo Δημοσ. 21 Σεπτεμβρίου 2012 Μέλος Δημοσ. 21 Σεπτεμβρίου 2012 Ερώτηση-"Εάν εμφανίζεται κενό διάστημα στο αλφαρηθμιτικό ελέγχου,τότε η scanf() θα αρχίσει την ανάγνωση και θα απορρίψει τους χαρακτήρες κενών διαστημάτων μέχρι να συναντήσει τον πρώτο μη-κενό χαρακτήρα(κατανοητό μέχρι εδώ).Εάν εμφανίζεται οποιοσδήποτε άλλος χαρακτήρας στο αλφ.ελέγχου,η scanf() διαβάζει και απορρίπτει όλους τους αντίστοιχους χαρακτήρες μέχρι να συναντήσει τον πρώτο χαρακτήρα που δεν ταιριάζει με τον χαρακτήρα του αλφ.ελέγχου.-Τι εννοεί ο ποιητής; Υ.Γ.Ελπίζω να μην μακρυγορώ.
migf1 Δημοσ. 21 Σεπτεμβρίου 2012 Δημοσ. 21 Σεπτεμβρίου 2012 Ερώτηση-"Εάν εμφανίζεται κενό διάστημα στο αλφαρηθμιτικό ελέγχου,τότε η scanf() θα αρχίσει την ανάγνωση και θα απορρίψει τους χαρακτήρες κενών διαστημάτων μέχρι να συναντήσει τον πρώτο μη-κενό χαρακτήρα(κατανοητό μέχρι εδώ).Εάν εμφανίζεται οποιοσδήποτε άλλος χαρακτήρας στο αλφ.ελέγχου,η scanf() διαβάζει και απορρίπτει όλους τους αντίστοιχους χαρακτήρες μέχρι να συναντήσει τον πρώτο χαρακτήρα που δεν ταιριάζει με τον χαρακτήρα του αλφ.ελέγχου.-Τι εννοεί ο ποιητής; Υ.Γ.Ελπίζω να μην μακρυγορώ. Κατά την γνώμη μου εννοεί να καταργήσεις την scanf() από το λεξιλόγιο σου Οκ, αστειεύομαι, αλλά πράγματι είναι πολύ καλή ιδέα να την καταργήσεις και να την αντικαταστήσεις π.χ. με... > char input[256] = {'\0'}; ... fgets( input, 256, stdin ); sscanf( input, ... ); // η οποιαδήποτε άλλη custom συνάρτηση φτιάξεις, ενδεχομένως με χρήση της strtok() Στο δια ταύτα της ερώτησης, εννοεί πως αν π.χ. γράψεις... > scanf( "abcd%c", &ch); τότε αν στην είσοδο του περάσεις για ch οποιοδήποτε από τα 'a', 'b', 'c', 'd' ΔΕΝ θα το διαβάσει, θα το αγνοήσει. Σημαίνει επίσης πως αν του δώσεις στην είσοδο π.χ.: aaabc8 θα σου διαβάσει το '8' ως ch. 1
capoelo Δημοσ. 28 Σεπτεμβρίου 2012 Μέλος Δημοσ. 28 Σεπτεμβρίου 2012 Ρε παιδιά,το συγκεκριμένο δεν θα έπρεπε να τρέχει μια χαρά; > #include<stdio.h> #include<stdlib.h> int main(void) { double yo[5]; int i; for(i=0;i<5;i++) { printf("Enter the average of the %d player: ",i+1); scanf_s("%f",&yo[i]); } double min=yo[0]; double max=yo[1]; for(i=0;i<5;i++) { if(yo[i]<min) min=yo[i]; if(yo[i]>max) max=yo[i]; } printf("The highest average is:%f\n",max); printf("The lowest average is:%f\n",min); double sum=yo[0]; for(i=1;i<5;i++) { sum=sum+yo[i]; } printf("The total average is:%f\n",sum/5.0); system("Pause"); return 0; } Παίρνει τους μέσους όρους και εμφανίζει min,max και το μέσο όρο τους.
migf1 Δημοσ. 28 Σεπτεμβρίου 2012 Δημοσ. 28 Σεπτεμβρίου 2012 Ρε παιδιά,το συγκεκριμένο δεν θα έπρεπε να τρέχει μια χαρά; > #include<stdio.h> #include<stdlib.h> int main(void) { double yo[5]; int i; for(i=0;i<5;i++) { printf("Enter the average of the %d player: ",i+1); scanf_s("%f",&yo[i]); } double min=yo[0]; double max=yo[1]; for(i=0;i<5;i++) { if(yo[i]<min) min=yo[i]; if(yo[i]>max) max=yo[i]; } printf("The highest average is:%f\n",max); printf("The lowest average is:%f\n",min); double sum=yo[0]; for(i=1;i<5;i++) { sum=sum+yo[i]; } printf("The total average is:%f\n",sum/5.0); system("Pause"); return 0; } Παίρνει τους μέσους όρους και εμφανίζει min,max και το μέσο όρο τους. Και τι πρόβλημα σου βγάζει;
Προτεινόμενες αναρτήσεις