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

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

Δημοσ.

Αγορασα λοιπον ενα πολυ καλο βιβλιο για την C μπας και ξεστραβωθω και μαθω προγραμματισμο!!!!

Αρχιζει λοιπον τα βασικα και σε καποια φαση μου ζηταει προγραμμα που να δινω 2 αριθμους και να εμφανιζει τον μεγαλυτερο απο αυτους.

 

 

>
#include <stdio.h>
main ()
{
int a,b; 
printf ("Δωσε 2 ακεραιους:");
scanf ("%d" "%d", &a,&;
if (a>
printf ("%d",a);
else
printf ("%d",;
}

 

 

Το προγραμμα τρεχει αλλα ./a.out

 

>
./a.out 
ΞΟΟΞ΅ 2 Ξ±ΞΊΞ΅ΟΞ±ΞΉΞΏΟΟ
56
4
56

 

Γιατι μου βγαζει αυτα τα ακυρα συμβολα?

Δημοσ.

Άσχετα με το πρόβλημα, το...

 

>
...
scanf ("%d" "%d", &a,&;
...

άλλαξέ το σε...

 

>
scanf ("%d %d", &a,&;

 

Τώρα, για τα... κινέζικα, το πιθανότερο είναι το .c αρχείο σου να έχει αποθηκευτεί με κωδικοσελίδα διαφορετική από αυτή στην οποία είναι ρυθμισμένο το shell σου. Συνήθως είναι UTF-8, δες σε τι κωδικοσελίδα είναι το shell σου (δεν θυμάμαι απέξω την εντολή) και μετά σώσε το .c αρχείο σου στην ίδια.

 

Αν δεν θες να μπλεξεις με αυτά, άλλαξε τα ελληνικά που περιέχει το .c αρχείο σου με αγγλικά.

Δημοσ.

το b με μικρα το εχω στο προγραμμα. Στον editor του forum το εμφανιζει κεφαλαια και δεν ξερω γιατι. Προσπαθησα να το αλλαξω αλλα επιμενει κεφαλαια! Και στο δικο σου post επισεις

Αλλαζωντας τα ελληνικα με Αγγλικα το προβλημα λυθηκε :)

Δημοσ.

το b με μικρα το εχω στο προγραμμα. Στον editor του forum το εμφανιζει κεφαλαια και δεν ξερω γιατι. Προσπαθησα να το αλλαξω αλλα επιμενει κεφαλαια! Και στο δικο σου post επισεις

Ναι το γνωρίζω, πρόβλημα του insomnia είναι αυτό (βάζε x,y αντί για a,b ;) )

 

ΥΓ. Ποιο βιβλίο αγόρασες;

Δημοσ.

Σπαω το κεφαλι μου να φτιαξω το ιδιο προγραμμα αλλα με 3 αριθμους αλλα δεν μπορω να βρω με ποια λογικη θα το κανω :(

Please. Μην μου γραψετε τον κωδικα. Απλα περιγραψτε μου το πως θα το κανω.

 

Το βρηκα :)

 

>
#include <stdio.h>
main ()
{
int a,b,c; 
printf ("Give 3 integers:");
scanf ("%d" "%d" "%d", &a ,&b ,&c);
if (a>
printf ("%d", a);
else if (b>c)
printf ("%d", ;
else
printf ("%d", c);
}

 

Δημοσ.

Συνεχίζεις όμως να βάζεις περιττά " μέσα στην scanf!

 

Μάθε και τα macros τώρα που είναι αρχή, καθώς και τους τελεστές ? : που αντικαθιστούν τα if-else...

 

>
#include <stdio.h>

#define myMAX(x, y)	( (x) > (y) ? (x) : (y) )	/* αυτό είναι ένα macro, με χρήση του τελεστή ? : */

int main( void )
{
  int x=0, y=0, z=0;

  printf( "Enter 3 integers: " );
  scanf( "%d %d %d", &x, &y, &z );

  x = myMAX(x,y) ? myMAX(x,z) : myMAX(y,z);

  printf( "The biggest amongst them is: %d\n", x );

  return 0;
}

 

ΥΓ1. Τσέκαρέ το αν τρέχει σωστά, γιατί δεν το δοκίμασα.

ΥΓ2. Το δικό σου για: 10 5 20 δίνει αποτέλεσμα το10 νομίζω ;)

Δημοσ.

Τρεχει πεννα αλλα εχασα λιγο την μπαλα :P

Ε, λογικό είναι αφού τώρα ξεκινάς! Διάβασε τον τελεστή ? : πρώτα, και δοκίμασέ τον αντί για τα if-else που χρησιμοποιείς τώρα (δεν ξέρω αν είδες το edit που έκανα πριν, στο ΥΓ2, αλλά ο κώδικάς σου νομίζω δεν δουλεύει σωστά).

Δημοσ.

Μαλλον εδω θα καψω και τα τελευταια μου εγκεφαλικα κυτταρα :P

 

Σου είπα τι πρέπει να κάνεις, να συγκρίνεις τους 2 πρώτους αριθμούς, και τον μεγαλύτερό τους να τον συγκρίνεις με τον 3ο. Κάντο με απλά if-else πρώτα αντί για ? :

Hint: δοκίμασε να σώσεις το αποτέλεσμα της 1ης σύγκρισης σε ξεχωριστή μεταβλητή ;)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...