stefanos59 Δημοσ. 7 Ιανουαρίου 2011 Μέλος Δημοσ. 7 Ιανουαρίου 2011 Ναι μα το κανω ετσι και δεν μ εμφανιζει τιποτα...
Evgenios1 Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 Ναι μα το κανω ετσι και δεν μ εμφανιζει τιποτα... κανε copy-paste αυτο που σου εδωσε ο vrixen, μετα αλλαξε τη γραμμη >for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount) σε >int iLetterCount = 0; for(iLetterCount=0; iLetterCount < SIZE; ++iLetterCount)
stefanos59 Δημοσ. 7 Ιανουαρίου 2011 Μέλος Δημοσ. 7 Ιανουαρίου 2011 κανε copy-paste αυτο που σου εδωσε ο vrixen, μετα αλλαξε τη γραμμη >for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount) σε >int iLetterCount = 0; for(iLetterCount=0; iLetterCount < SIZE; ++iLetterCount) το προγραμμα τρεχει μια χαρα δινοντας εναν αριθμο μεσα στο προγραμμ,απλα οταν παω να το κανω να μου ζηταει εναν αριθμο και εγω να του δινω καποιον δεν μ τρεχει. για την ιστορία πάλι,το ζητούμενο με αναδρομή > #include <stdio.h> #include <string.h> #define SIZE 4 static int COUNT = 0; char Letters[][size] = { {'0','0','0'}, {'0','0','0'}, {'A', 'B', 'C'}, {'D', 'E', 'F'}, {'G', 'H', 'I'}, {'J', 'K', 'L'}, {'M', 'N', 'O'}, {'P', 'R', 'S'}, {'T', 'U', 'V'}, {'W', 'X', 'Y'} }; void ConvertPhoneNumberToString(char phone[], int nArraySize, int nStart){ if(nStart < nArraySize - 1){ char chDigit = phone[nStart]; int nDigit = chDigit - '0'; for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount){ char chLetter = Letters[nDigit][iLetterCount]; if(chLetter != 0){ phone[nStart] = chLetter; ConvertPhoneNumberToString(phone, nArraySize, nStart + 1); [color="#FF0000"]phone[nStart] = chDigit;[/color] } } }else{ COUNT++; if (COUNT%21==0){ printf("pata ena pliktro gia sinexeia...\n"); getchar(); } printf("[%d]=> %s\n", COUNT, phone); } } int main(){ char phone[] = "2845"; ConvertPhoneNumberToString(phone, sizeof(phone), 0); getchar(); return 0; } η εντολη με το κοκκινο ειναι απαραιτητη(phone[nStart] = chDigit;)?
Evgenios1 Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 απλα οταν παω να το κανω να μου ζηταει εναν αριθμο και εγω να του δινω καποιον δεν μ τρεχει. Πως παιρνεις τον αριθμο; Τωρα ειδα το #26 Συμφωνα με > char phone[] = "2845"; ConvertPhoneNumberToString(phone, sizeof(phone), 0); Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει. αρα το sizeof δε σου κανει. κανε κατι τετοιο >char buf[256]; scanf("%s",buf); ConvertPhoneNumberToString(buf,strlen(buf),0); Τελος ριξε μια ματια στα c strings.
stefanos59 Δημοσ. 8 Ιανουαρίου 2011 Μέλος Δημοσ. 8 Ιανουαρίου 2011 Πως παιρνεις τον αριθμο; Τωρα ειδα το #26 Συμφωνα με > char phone[] = "2845"; ConvertPhoneNumberToString(phone, sizeof(phone), 0); Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει. αρα το sizeof δε σου κανει. κανε κατι τετοιο >char buf[256]; scanf("%s",buf); ConvertPhoneNumberToString(buf,strlen(buf),0); Τελος ριξε μια ματια στα c strings. θα μπορουσε να γινει καπως ετσι??: >int main(){ char phone1[256]; printf("\nDwse ton arithmou tilefwnou pou theleis na metatrepseis se pithanes lekseis\n"); scanf("%s",phone1); char phone[]=phone1; ConvertPhoneNumberToString(phone,sizeof(phone),0); getchar(); return 0; }
virxen75 Δημοσ. 8 Ιανουαρίου 2011 Δημοσ. 8 Ιανουαρίου 2011 κάνε απλά χρήση του strlen δεν έχει νόημα αυτό που προσπαθείς να κάνεις.
stefanos59 Δημοσ. 9 Ιανουαρίου 2011 Μέλος Δημοσ. 9 Ιανουαρίου 2011 κάνε απλά χρήση του strlen δεν έχει νόημα αυτό που προσπαθείς να κάνεις. εγινε το βρηκα!! Thanks
virxen75 Δημοσ. 9 Ιανουαρίου 2011 Δημοσ. 9 Ιανουαρίου 2011 Πως παιρνεις τον αριθμο; Τωρα ειδα το #26 Συμφωνα με > char phone[] = "2845"; ConvertPhoneNumberToString(phone, sizeof(phone), 0); Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει. αρα το sizeof δε σου κανει. κανε κατι τετοιο >char buf[256]; scanf("%s",buf); ConvertPhoneNumberToString(buf,strlen(buf),0); Τελος ριξε μια ματια στα c strings. σωστό αλλά θέλει μία αλλαγή στην αναδρομική συνάρτηση για να δουλέψει ΑΛΛΑΓΗ ΣΤΟΝ ΚΩΔΙΚΑ ΓΙΑ ΧΡΗΣΗ strlen αντι sizeof ================================================= if(nStart < nArraySize - 1){ να γίνει ----> if(nStart < nArraySize){
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.