aikat90 Δημοσ. 30 Νοεμβρίου 2013 Δημοσ. 30 Νοεμβρίου 2013 λοιπον θελω την βοηθεια σας θελω να μετατρεψω ενα αριθμο της μορφης "2,3e-5" σε μορφη δυαδικου...στην αρχη μας ζητειται να μετρησουμε ποσα ακεραια ψηφια εχουμε μετα ποσα δεκαδικα αν υπαρχουν και μετα να μετατρεψουμε τον αριθμο απο string σε ακεραιο δηλαδη αν εχουμε το 2,3 να το κανουμε 23 και μετα υπαρχει η υπολοιπη ασκηση αλλα εγω εχω κολησει εδω...τι εχω κανει μεχρι τωρα #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char str[51]; str[50] = '\0'; unsigned int nubmer; int i, i1, i2, i3 ,i4 ,i5,y; printf("Hello give me a nubmer!\n"); gets(str); if(str[0]== '+'){ str[0]=0; } else if(str[0]=='-'){ str[0]=1; } i1=0; i=0; i2=-1; while(1){ if(str[i]!= 'e' && str[i]!= 'E' && str[i]!= ','){ i1++; }else{break;} i++; } if(str[i]== ','){ while(1){ if(str[i]!= 'E' && str[i]!= 'e'){ i2++; }else break; i++; } } printf("%d %d %d",i, i1,i2); i5=0; i=0; while(1){ { if(i2!=0 && str[i]!=','){ i5=i5+('str[i]'*pow (10 , y)); y++; }else break; i=i-1; } } printf(" %d",i5); return 0; } οτι δεν καταλαβαινετε και οτι εχω κανει λαθος πειτε μου... ευχαριστω
παπι Δημοσ. 30 Νοεμβρίου 2013 Δημοσ. 30 Νοεμβρίου 2013 Ετσι απλα να το μετατρεψετεσε δυαδικο; Τα εχουν χασει απο τις πολλες απεργιες...
aikat90 Δημοσ. 30 Νοεμβρίου 2013 Μέλος Δημοσ. 30 Νοεμβρίου 2013 Ετσι απλα να το μετατρεψετεσε δυαδικο; Τα εχουν χασει απο τις πολλες απεργιες... αν εννοεισ αν ειπε μονο αυτο οχι...εχει δωσει καποιες οδηγιες που εξηγουν αρκετα απλα εγω κολλησα εδω..
nilosgr Δημοσ. 30 Νοεμβρίου 2013 Δημοσ. 30 Νοεμβρίου 2013 Προφανως ζηταει για αριθμους σε μορφη IEEE 754. Αν ναι τοτε διαβασε παρακατω Μερικες συμβουλες: Κρατα σε μια μεταβλητη το ακεραιο μερος και σε μια αλλη το δεκαδικο Αν η εισοδος περιεχει Ε κρατα τον εκθετη σε αλλη μεταβλητη τελος κρατα το προσημο του ριθμου καθως και του Ε (αν εχει) σε ξεχωριστες μεταβλητς Βρες το μεγιστο μηκος του ακεραιου μερους χωρις Ε Βρες το μεγιστο μηκος του δεκαδικου μερους χωρις Ε Ετσι απλα να το μετατρεψετεσε δυαδικο; Τα εχουν χασει απο τις πολλες απεργιες... Αν σου πω οτι το εχω κανει αυτο (στην ουσια double.Parse() της C#) σε MIPS θα με πιστεψεις;
migf1 Δημοσ. 30 Νοεμβρίου 2013 Δημοσ. 30 Νοεμβρίου 2013 ...τι εχω κανει μεχρι τωρα #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char str[51]; str[50] = '\0'; unsigned int nubmer; int i, i1, i2, i3 ,i4 ,i5,y; printf("Hello give me a nubmer!\n"); gets(str); if(str[0]== '+'){ str[0]=0; } else if(str[0]=='-'){ str[0]=1; } i1=0; i=0; i2=-1; while(1){ if(str[i]!= 'e' && str[i]!= 'E' && str[i]!= ','){ i1++; }else{break;} i++; } if(str[i]== ','){ while(1){ if(str[i]!= 'E' && str[i]!= 'e'){ i2++; }else break; i++; } } printf("%d %d %d",i, i1,i2); i5=0; i=0; while(1){ { if(i2!=0 && str[i]!=','){ i5=i5+('str[i]'*pow (10 , y)); y++; }else break; i=i-1; } } printf(" %d",i5); return 0; } οτι δεν καταλαβαινετε και οτι εχω κανει λαθος πειτε μου... ευχαριστω Σε αυτά που έχεις κάνει μέχρι τώρα, ο compiler σου τι λάθη σου λέει πως έχεις κάνει; Διότι νομίζω πως χρειάζεται πρώτα να λύσεις πολύ πιο στοιχειώδη θέματα πριν καν αρχίσεις να ασχολείσαι με ψηφία, διαχωρισμούς και tokenization (όπως π.χ. τι είναι τα c-strings, πως ορίζονται, από τι αποτελούνται, πως τους αναθέτουμε τιμές, κλπ). Σχετικά με το "ότι δεν καταλαβαίνετε πείτε μου" προσωπικά δεν καταλαβαίνω για ποιο λόγο θα μπει κάποιος στον κόπο να ασχοληθεί (και άρα να βοηθήσει) με έναν κώδικα αστοίχιστο, που δεν έχει το παραμικρό σχόλιο και χρησιμοποιεί ονομασίες μεταβλητών που τον κάνουν ακόμα πιο δυσανάγνωστο (π.χ. i, i1, i2, ... i5, y ). Τέλος, εφόσον δεν ξέρουμε το ακριβές ζητούμενο της άσκησης, μάλλον είναι ασφαλές να υποθέσουμε το αναμενόμενο για εργασία που μετατρέπει float σε binary, δηλαδή πως σας έχει ζητήσει να διαχωρίσετε πρώτα το input σε sign, exponent και mantissa: http://kipirvine.com/asm/workbook/floating_tut.htm (περίπτωση κατά την οποία, είναι μάλλον αδύνατον να τα καταφέρεις αν δεν λύσεις πρώτα πιο βασικά θέματα, όπως αυτό που ανέφερα παραπάνω για τα c-strings).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα