bokarinho Δημοσ. 10 Δεκεμβρίου 2009 Δημοσ. 10 Δεκεμβρίου 2009 [/color] Υπάρχουν δυο επιλογές ανόητε φοιτητή: 1. Στρώνεις τον κ... σου κάτω, διαβάζεις και κάνεις τις εργασίες σου και δεν γίνεσαι γελοίος στα forum 2. Πληρώνεις κάποιον και σου τις κάνει με ότι αρνητικό συνεπάγεται για το μέλλον σου Προφανώς τον δικό σου χρόνο υποθετικά τον κοστολογείς πολύ ακριβά για να μην την κάνεις ο ίδιος! Έτσι δεν είναι; Εμείς λοιπόν γιατί να στο κάνουμε τσάμπα; Γκέγκε; Άντε καλά Χριστούγεννα! 3. http://cm.bell-labs.com/cm/cs/cbook/
ippo00 Δημοσ. 10 Δεκεμβρίου 2009 Δημοσ. 10 Δεκεμβρίου 2009 Καλά μην φτικάρετε, απλά δεν ξέρει τι λεει =)
Pantelwolf Δημοσ. 10 Δεκεμβρίου 2009 Δημοσ. 10 Δεκεμβρίου 2009 [/color] 3. http://cm.bell-labs.com/cm/cs/cbook/ ενα βιβλιο που θα προτεινα είναι το C θεωρία και πράξη του καθηγητή Α. Τομαρά που ήταν αυτο που με έκανε να αγαπησω τη γλωσσα (μαζι με τις εντυπωσιακες παραδοσεις του). Δεν ξέρω όμως αν κυκλοφορει.
ippo00 Δημοσ. 10 Δεκεμβρίου 2009 Δημοσ. 10 Δεκεμβρίου 2009 Κατάφερα και έλυσα το πρώτο! > #include <setjmp.h> #include <stdio.h> int digit(S) char *S; { static jmp_buf buf; int ret; if (ret = setjmp(buf)) return ret; if((S[0] == 'o') && (S[1] == 'n') && (S[2] == 'e') && (S[3] == '\0')) longjmp(buf,1); if((S[0] == 't') && (S[1] == 'w') && (S[2] == 'o') && (S[3] == '\0')) longjmp(buf,2); if((S[0] == 't') && (S[1] == 'h') && (S[2] == 'r') && (S[3] == 'e') && (S[4] == 'e') && (S[5] == '\0')) longjmp(buf,3); return 0; } main(){printf("%d\n",(digit("three")));} ---------- Το μήνυμα προστέθηκε στις 19:16 ---------- και το δεύτερο > int avg(v) int *v; { int i,j; for(i=0;i<(v[0]+v[1]+v[2]+v[3]+v[4]);i++); for(j=0;i > 0;j++,i-=5); return j; } ---------- Το μήνυμα προστέθηκε στις 19:19 ---------- για το τελευταίο πρέπει να τα συνδιάσεις κάπως, αλλά δεν ξέρω πως :/
tespa_2002 Δημοσ. 11 Δεκεμβρίου 2009 Δημοσ. 11 Δεκεμβρίου 2009 ippo00 είσαι Θεός. Υποκλίνομαι! Τέλοςςςςςς!!!
chex Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 Ειμαι και γω πρωτο ετος σε καποια σχολη, και ηθελα μονο να πω πως δε φταινε αυτοι για τετοια περιστατικα. δεν θελω να διαφωνησω με κανεναν, ουτε να υποστηριξω τον g0rg0s. Με C εχω να ασχοληθω καιρο αλλα εφτιαξα ενα κωδικα παρομοιο σε java και δινεται παρακατω. Οπως ανεφερε καποιος ηδη, δεν χρειαστηκε πανω απο 10 λεπτα. g0rg0s προσπαθησε να τον προσαρμοσεις σε C.... και ισως κατι μαθεις. >package readnumber; import java.io.*; public class ReadNumber { private String s; public ReadNumber(){ int ot=digit(); double d=avg(); System.out.println("digit = "+ot); System.out.println("avg = "+dtw); } public int digit(){ System.out.println("Type literal number: "); InputStreamReader input=new InputStreamReader(System.in); BufferedReader reader=new BufferedReader(input); try{ s=reader.readLine(); } catch(IOException e){} if (s.equals("one")) return 1; else if (s.equals("two")) return 2; else if (s.equals("three")) return 3; else return 0; } public double avg(){ int ar[]=new int[5]; int sum=0; for(int i=0;i<5;i++){ System.out.println("Type five number ("+i+"): "); InputStreamReader input=new InputStreamReader(System.in); BufferedReader reader=new BufferedReader(input); try{ s=reader.readLine(); } catch(IOException e){} ar[i]=Integer.parseInt(s); } for(int i=0;i<5;i++) sum+=ar[i]; return sum/5; } public static void main(String[] args) { new ReadNumber(); } } Να ξερεις δεν το εκανα για να βοηθησω. Γιατι απλα εχεις λαθος νοοτροπια για να το ζητησεις.
Mike_ledis Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 Καλησπέρα εφτιαξα και γω έναν κώδικα αλλα έχει καποια λαθάκια που δεν τα καταλαβαίνω.Αν μπορεί κάποιος ας το τσεκάρει και να μου πεί που έχω κάνει λάθος... Ευχαριστώ. #include <stdio.h> #include <string.h> int Digit(char number[20]); double avg (int xar[4]); main() { char s[20]; int ar[4],i,j; double mesos; for (i=0;i<=4;i++){ printf(" dwse Enan arithmo \n "); scanf("%s",&s); j=Digit(s); printf(" o arithmos sas einai %d \n",j); ar=Digit(s); } mesos=avg(ar); printf("%.2f",&mesos); } int Digit(char number[20]){ char *one="one"; char *two="two"; char *three="three"; if(strcmp(one,number)==0) { return 1; } else if(strcmp(two,number)==0) { return 2; } else if(strcmp(three,number)==0) { return 3; } else { return 0; } } double avg (int xar[4]){ int m; double i; m=0; for(i=0;i<=3;i++) { m=m+xar; } i=m/5; return i; }
tespa_2002 Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 Κατ' αρχήν προσπαθείς να βάλεις 5 στοιχεία σε πίνακες 4 θέσεων. Οι πίνακες ar και xar θα πρέπει να έχουν 5 θέσεις σύμφωνα με την εκφώνηση. Συνεχίζουμε: for (i=0;i<=4;i++){ printf(" dwse Enan arithmo \n "); scanf("%s",&s); j=Digit(s); printf(" o arithmos sas einai %d \n",j); ar=Digit(s); } mesos=avg(ar); printf("%.2f",&mesos); } Το όνομα ενός πίνακα είναι ήδη pointer. Συνεπώς δε χρειάζεται να βάλεις & μπροστά του (στη scanf). Σωστά γράφεται: scanf("%s",s); Επίσης, στην printf εννοείται ότι πρέπει να τυπώσεις την τιμή της μεταβλητής μέσος, και όχι τη διεύθυνσή της. Άρα το σωστό είναι printf("%.2f",mesos); double avg (int xar[4]){ int m; double i; m=0; for(i=0;i<=3;i++) { m=m+xar; } i=m/5; return i; } Εδώ έχεις 3 προβληματάκια. Κατ' αρχήν το i το χρησιμοποιείς για 2 διαφορετικές δουλειές. Και σαν μετρητή στο for (και σαν δείκτη θέσης στον πίνακα xar) και σαν τη μεταβλητή όπου θα βάλεις το αποτέλεσμα του μέσου όρου. Όμως δε μπορείς να χρησιμοποιήσεις έναν double αριθμό σαν δείκτη θέσης πίνακα. Επίσης παρατήρησε ότι προσθέτεις 4 αριθμούς (xar[0], xar[1], xar[2] και xar[3]) αλλά για να βρεις το μέσο όρο διαιρείς δια 5. Είναι και πάλι το πρόβλημα που σου επεσήμανα πρώτο - πρώτο (έχεις μπλέξει λίγο τον αριθμό των στοιχείων που διαβάζεις, τις διαστάσεις των πινάκων κλπ). Τέλος η διαίρεση m/5 θα σου δώσει ακέραιο (αφού διαιρούνται 2 ακέραιοι), ασχέτως αν μετά αυτός θα μπει σε μια double μεταβλητή και θα φαίνεται να έχει δεκαδικά ψηφία (που θα είναι 0). Για παράδειγμα, i = m/5 με το m 4 θα σου δώσει στο i 0.0 (και όχι 0.8). Ο σωστός τρόπος να γράψεις αυτή τη γραμμή είναι i = m/5.0 ; Εδώ, επειδή ο ένας από τους 2 αριθμούς είναι δεκαδικός στη διαίρεση, το αποτέλεσμα θα είναι επίσης δεκαδικός (και άρα αυτό που περιμένεις, δηλαδή δε θα χαθούν τα δεκαδικά ψηφία).
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.