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

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

Δημοσ.

Το ξέρω ότι είμαι παράξενος :P αλλά μόνο εμένα μου φαίνεται πολύ άσχημη και δυσανάγνωστη η "ανάποδη" γραφή στα if ?

 

Στη συγκεκριμένη περίπτωση εκτός από υποκειμενικά "άσχημο" είναι και ανούσιο γιατί το i % COUNTBY είναι rvalue και δεν μπορεί να γίνει ανάθεση πάνω του. Κακή επιλογή παραδείγματος.

  • Απαντ. 1,6k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Aντιστοιχη διαφωνια υπάρχει και στο αν πρεπει ή οχι να μπαινουν παρενθεσεις

στο return . :P

 

Βεβαια σε κανενα βιβλιο δεν το εχω δει με παρενθεσεις :S

Δημοσ.

@defacer:

Το παράδειγμα δεν ήταν επιλεγμένο, χρησιμοποίησα ότι είχε ο κώδικας του capoelo. Όταν το χεις κάνει συνήθεια να βάζεις αριστερά τα r-values, το κάνεις παντού.

 

@starlight:

Οι παρενθέσεις στο return δεν σε γλιτώνουν από ενδεχόμενο bug, οπότε είναι τελείως άχρηστες (το return είναι εντολή, δεν είναι συνάρτηση... οπως είναι π.χ. η exit() )

  • Like 1
Δημοσ.

@starlight:

Οι παρενθέσεις στο return δεν σε γλιτώνουν από ενδεχόμενο bug, οπότε είναι τελείως άχρηστες (το return είναι εντολή, δεν είναι συνάρτηση... οπως είναι π.χ. η exit() )

 

Εγώ τις βάζω για συνέπεια (και μου φαίνεται και πιο όμορφο με τις παρενθέσεις). Στο return δεν παίζουν ρόλο αλλά στο sizeof όταν έχεις τύπο πρέπει να τις βάλεις.

>
int k;
sizeof(k);   <--- Σωστό
sizeof k;    <--- Σωστό
sizeof(int); <--- Σωστό
sizeof int;  <--- Λάθος

 

Για αυτό το λόγο τις βάζω και στο sizeof και στο return αλλά γενικά έχεις δίκιο ότι δεν παίζουν κανένα ρόλο.

Δημοσ.

@defacer:

Το παράδειγμα δεν ήταν επιλεγμένο, χρησιμοποίησα ότι είχε ο κώδικας του capoelo. Όταν το χεις κάνει συνήθεια να βάζεις αριστερά τα r-values, το κάνεις παντού.

 

Προφανές.

 

Απλά ίσως θα ήταν καλύτερα με λίγο παραπάνω σχολιασμό αφού ο original κώδικας δεν προσφέρεται.

Δημοσ.

Εγώ τις βάζω για συνέπεια (και μου φαίνεται και πιο όμορφο με τις παρενθέσεις). Στο return δεν παίζουν ρόλο αλλά στο sizeof όταν έχεις τύπο πρέπει να τις βάλεις.

>
int k;
sizeof(k); <--- Σωστό
sizeof k; <--- Σωστό
sizeof(int); <--- Σωστό
sizeof int; <--- Λάθος

 

Για αυτό το λόγο τις βάζω και στο sizeof και στο return αλλά γενικά έχεις δίκιο ότι δεν παίζουν κανένα ρόλο.

 

>
int i = sizeof sizeof sizeof sizeof i;

Δημοσ.

Δεν κατάλαβα τι μου λες εδώ :P

 

Ούτε εγώ κατάλαβα τι εννοεί ο πάπι.

 

Στην εντολή sizeof έχει ουσία να βάζεις πάντα παρενθέσεις, επειδή έτσι καλύπτεις απροβλημάτιστα και τις 2 περιπτώσεις. Δεν είναι δηλαδή περιττή ως λογική.

 

Με το return είναι τελείως περιττές οι παρενθέσεις. Π.χ. δεν καταλαβαίνω όταν λες τις βάζεις για συνέπεια... συνέπεια με τι;

 

ΥΓ. Μου θύμισες κώδικες που έχουν ; μετά από } :P

Δημοσ.

Με το return είναι τελείως περιττές οι παρενθέσεις.

Ναι για αυτό είπα ότι έχεις δίκιο πως δεν χρειάζονται

 

Π.χ. δεν καταλαβαίνω όταν λες τις βάζεις για συνέπεια... συνέπεια με τι;

Μου φαίνεται πιο ωραίο με τις παρενθέσεις και εφόσον βάζω στο sizeof βάζω και στο return. Παραξενιά :P

 

ΥΓ. Μου θύμισες κώδικες που έχουν ; μετά από } :P

Καλά δεν το πήγα και ως εκεί :)

Δημοσ.

Ερώτηση-"Εάν εμφανίζεται κενό διάστημα στο αλφαρηθμιτικό ελέγχου,τότε η scanf() θα αρχίσει την ανάγνωση και θα απορρίψει τους χαρακτήρες κενών διαστημάτων μέχρι να συναντήσει τον πρώτο μη-κενό χαρακτήρα(κατανοητό μέχρι εδώ).Εάν εμφανίζεται οποιοσδήποτε άλλος χαρακτήρας στο αλφ.ελέγχου,η scanf() διαβάζει και απορρίπτει όλους τους αντίστοιχους χαρακτήρες μέχρι να συναντήσει τον πρώτο χαρακτήρα που δεν ταιριάζει με τον χαρακτήρα του αλφ.ελέγχου.-Τι εννοεί ο ποιητής;

 

Υ.Γ.Ελπίζω να μην μακρυγορώ.

Δημοσ.

Ερώτηση-"Εάν εμφανίζεται κενό διάστημα στο αλφαρηθμιτικό ελέγχου,τότε η scanf() θα αρχίσει την ανάγνωση και θα απορρίψει τους χαρακτήρες κενών διαστημάτων μέχρι να συναντήσει τον πρώτο μη-κενό χαρακτήρα(κατανοητό μέχρι εδώ).Εάν εμφανίζεται οποιοσδήποτε άλλος χαρακτήρας στο αλφ.ελέγχου,η scanf() διαβάζει και απορρίπτει όλους τους αντίστοιχους χαρακτήρες μέχρι να συναντήσει τον πρώτο χαρακτήρα που δεν ταιριάζει με τον χαρακτήρα του αλφ.ελέγχου.-Τι εννοεί ο ποιητής;

 

Υ.Γ.Ελπίζω να μην μακρυγορώ.

 

Κατά την γνώμη μου εννοεί να καταργήσεις την scanf() από το λεξιλόγιο σου :lol:

Οκ, αστειεύομαι, αλλά πράγματι είναι πολύ καλή ιδέα να την καταργήσεις και να την αντικαταστήσεις π.χ. με...

 

>
char input[256] = {'\0'};
...
fgets( input, 256, stdin );
sscanf( input, ... ); // η οποιαδήποτε άλλη custom συνάρτηση φτιάξεις, ενδεχομένως με χρήση της strtok()

 

Στο δια ταύτα της ερώτησης, εννοεί πως αν π.χ. γράψεις...

 

>
scanf( "abcd%c", &ch);

 

τότε αν στην είσοδο του περάσεις για ch οποιοδήποτε από τα 'a', 'b', 'c', 'd' ΔΕΝ θα το διαβάσει, θα το αγνοήσει. Σημαίνει επίσης πως αν του δώσεις στην είσοδο π.χ.: aaabc8 θα σου διαβάσει το '8' ως ch.

  • Like 1
Δημοσ.

Ρε παιδιά,το συγκεκριμένο δεν θα έπρεπε να τρέχει μια χαρά;

>
#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 και το μέσο όρο τους.

Δημοσ.

Ρε παιδιά,το συγκεκριμένο δεν θα έπρεπε να τρέχει μια χαρά;

 

 

>
#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 και το μέσο όρο τους.

 

Και τι πρόβλημα σου βγάζει;

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

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