alfas Δημοσ. 8 Ιουνίου 2008 Δημοσ. 8 Ιουνίου 2008 Γίνεται στην C++ να γράψω έναν αριθμό... και αυτο τον αριθμό να μου τον γράφει αντίστροφα? Δηλαδή να του βάζω 12345 και να μου τον εμφανίζει 54321 Υπάρχει κάποιο site να το συμβουλευτώ?
Επισκέπτης Δημοσ. 8 Ιουνίου 2008 Δημοσ. 8 Ιουνίου 2008 Μπορείς να ξεκινήσεις διαβάζοντας για c strings, θα σου χρειαστεί και η συνάρτηση strlen(); για να κάνεις αυτό που θέλεις. http://www.google.gr/search?hl=el&q=c+strings&btnG=%CE%91%CE%BD%CE%B1%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7+Google&meta=
darth_revan Δημοσ. 8 Ιουνίου 2008 Δημοσ. 8 Ιουνίου 2008 Μπορείς για παράδειγμα να μετατρέπεις τον αριθμό σε string (με την itoa( ) για παράδειγμα), να κάνεις την αντιστροφή στο string και στη συνέχεια να το ξαναμετατρέπεις σε integer (με την atoi( ) ). Βέβαια πολύ πιθανό να υπάρχει και πιο εύκολος τρόπος...
bokarinho Δημοσ. 8 Ιουνίου 2008 Δημοσ. 8 Ιουνίου 2008 Παρακάτω παραθέτω ένα πρόγραμμα γραμμένο σε C που αντιστρέφει έναν δοθέντα αριθμό και με και χωρίς την βοήθεια πινάκων χαρακτήρων. Σε γενικές γραμμές πρόκειται για την υλοποιήση όσων έχουν αναφερθεί από τους παραπάνω. > //--------------------------------------------------------------------------- #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> //--------------------------------------------------------------------------- /* Return the number of digits of number N. */ int Length(unsigned int N) { static int nLen; for(nLen = 0; N > 0; N /= 10, nLen++); return nLen; } /* Reverse the digits of a given number. */ unsigned int ReverseNumber(unsigned int N) { /* Return Value. */ unsigned int revN = 0; /* Get the number of digits of the given number. */ int nLen = Length(N); /* If there is only one digit return the number. */ if(nLen == 1) return N; else { /* Declare variables used. */ static int Index, exp; unsigned int Digit = 0; /* Save the length for other use. */ exp = nLen; /* Loop to do the job. */ for(Index = 0; Index < nLen; Index++) { Digit = N % 10; revN += Digit * pow(10, --exp); N /= 10; } /* Return the number. */ return revN; } } /* Reverse a string. */ char *_strRev(char *str) { if(!str) return NULL; else { static int Index = 0; int nLen = strlen(str); for(Index = 0; Index < nLen; Index++) { char c = str[index]; str[index] = str[nLen-1]; str[nLen-1] = c; nLen--; } return str; } } /* Reverse a given number as it was a string. */ int ReverseNumberString(unsigned int N) { unsigned int revN; int nLen = Length(N); if(nLen == 1) return N; else { /* Pointer to a string. */ char *revStr = NULL; /* Create a null terminated string with the number. */ char TNumber[bUFSIZ] = ""; sprintf(TNumber, "%d", N); if(!strlen(TNumber)) { printf("Error in number representation.\n"); return -1; } /* Reverse the string. */ revStr = _strRev(TNumber); /* Get the number from the reversed string. */ revN = atoi(revStr); /* Return the number. */ return revN; } } /* Main Code. */ int main(int argc, char* argv[]) { int N; printf("Enter a number: "); scanf("%d", &N); printf("Reversed number: %d\n", ReverseNumber(N)); printf("Reversed number with string help: %d\n", ReverseNumberString(N)); getchar(); printf("Hit enter to continue...\n"); getchar(); return 0; } //--------------------------------------------------------------------------- Εκτυπωμένα αποτελέσματα: Enter a number: 123456789 Reversed number: 987654321 Reversed number with string help: 987654321 Hit enter to continue... **Άτιμη θητεία....
georgemarios Δημοσ. 9 Ιουνίου 2008 Δημοσ. 9 Ιουνίου 2008 @bokarinho ελπιζω να μην εισαι σε αδεια και καθεσαι να γραφεις σε φορουμς κτλ. βγες εξω ρε πατοψαρο να ξελαμπικαρεις
bokarinho Δημοσ. 9 Ιουνίου 2008 Δημοσ. 9 Ιουνίου 2008 Έχεις δίκιο μάλλον δεν την παλεύω... Που να βγω έξω να πάω με τον καιρό να βρέχει ακατάπαυστα γαμώτο μου; Off topic....
alfas Δημοσ. 9 Ιουνίου 2008 Μέλος Δημοσ. 9 Ιουνίου 2008 Σας ευχαριστώ παιδιά όλους... Τρόπος εκτός των string υπάρχει γιατί εγώ κάτι τέτοιο δεν το έχω μάθει ακόμα!! Kαι δυστυχώς δεν μπορώ να κάνω χρήση τους!!!
georgemarios Δημοσ. 9 Ιουνίου 2008 Δημοσ. 9 Ιουνίου 2008 Σας ευχαριστώ παιδιά όλους... Τρόπος εκτός των string υπάρχει γιατί εγώ κάτι τέτοιο δεν το έχω μάθει ακόμα!! Kαι δυστυχώς δεν μπορώ να κάνω χρήση τους!!! κοιτα, το να αντιστρεψεις ενα νουμερο ετσι δεν εχει νοημα. ειναι οπως λεμε ο αριθμος του τηλεφωνου, δεν ειναι αριθμος στη πραγματικοτητα (δε μπορεις να τον προσθαφαιρεσεις ας πουμε), ειανι ενας κωδικας που απλα περιεχει συμβολα μεταξυ 0 και 9 αρα αυτο που θες στη πραγματικοτητα ειναι να αντιστρεψεις ενα στρινγκ που περιεχει χαρακτηρες 0...9
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.