TechMonkey Δημοσιεύτηκε Δεκέμβριος 1, 2014 #1 Κοινοποίηση Δημοσιεύτηκε Δεκέμβριος 1, 2014 Το πρόβλημα είναι το εξής: Αντιγραφή εισόδου στην έξοδο και, εφόσον υπάρχουν πάνω από ένα κενά, να μένει μόνο ένα. Έχω καταφέρει να γράψω κώδικα που κάνει αυτό, αλλά σβήνει και ένα χαρακτήρα από την προηγούμενη των κενών λέξη. Το "tricky" κομμάτι είναι πως "απαγορεύεται" η χρήση πινάκων και δεικτών, γιατί μετά θα χρησιμοποιηθεί και σε άσκηση το κομμάτι αυτό. Έχω φάει το κεφάλι μου 3-4 μέρες και δεν μπορώ να το διορθώσω... Any help appreciated. Link to comment Share on other sites More sharing options...
deninho Δεκέμβριος 1, 2014 #2 Κοινοποίηση Δεκέμβριος 1, 2014 πως το έχεις κάνει; βάλε κώδικα. Link to comment Share on other sites More sharing options...
nucleus Δεκέμβριος 1, 2014 #3 Κοινοποίηση Δεκέμβριος 1, 2014 Πως διαβάζεις την είσοδο? χαρακτήρα χαρακτήρα ή όλους μαζί? Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 1, 2014 Author #4 Κοινοποίηση Δεκέμβριος 1, 2014 while((c = getchar()) != EOF) { if(c == ' ') { sc++; } if(c == ' ' && sc >= 1) { putchar('\b'); putchar(c); sc--; } else { putchar(c); sc = 0; } } Χαρακτήρα- χαρακτήρα. Έχω κοιτάξει πολλές παραλλαγές, το else μάλλον τσάμπα υπάρχει τώρα. Tώρα, και με ένα κενό, σβήνει και τον προηγούμενο χαρακτήρα. Δηλαδή αν του πατήσεις: as as θα σου βγάλει a as. Το ίδιο με όσους χαρακτήρες και κενά και αν του βάλεις. Link to comment Share on other sites More sharing options...
EraserheadX Δεκέμβριος 1, 2014 #5 Κοινοποίηση Δεκέμβριος 1, 2014 Άλλαξε το δεύτερο if σε else if edit: και βάλε στις συνθήκες του πρώτου if και το εξής: && sc == 0 Link to comment Share on other sites More sharing options...
deninho Δεκέμβριος 2, 2014 #6 Κοινοποίηση Δεκέμβριος 2, 2014 while((c = getchar()) != EOF) { if(c == ' ') { sc++; } if(c == ' ' && sc >= 1) { putchar('\b'); putchar(c); sc--; } else { putchar(c); sc = 0; } } Χαρακτήρα- χαρακτήρα. Έχω κοιτάξει πολλές παραλλαγές, το else μάλλον τσάμπα υπάρχει τώρα. Tώρα, και με ένα κενό, σβήνει και τον προηγούμενο χαρακτήρα. Δηλαδή αν του πατήσεις: as as θα σου βγάλει a as. Το ίδιο με όσους χαρακτήρες και κενά και αν του βάλεις. αν ο χαρακτήρας είναι κενό αυξάνει το sc κατά ένα. Στη συνέχεια μπαίνει στο δεύτερο if, ο χαρακτήρας είναι κενό, και το sc είναι >=1. Σβήνει τον προηγούμενο χαρακτήρα και βάζει το κενό. Μειώνει το sc. α) Θες else if στο δεύτερο if (με πρόλαβε ο EraserheadX)β) γιατί μειώνεις το sc στο δεύτερο if; Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 2, 2014 Author #7 Κοινοποίηση Δεκέμβριος 2, 2014 β) γιατί μειώνεις το sc στο δεύτερο if; Από χαζομάρα μου, καθώς φαίνεται.... Όντως είναι μάλλον περιττό. Κατ' αρχήν ευχαριστώ για τις άμεσες απαντήσεις σας. Κατά δεύτερον και με τις αλλαγές που προτείνετε πάλι το ίδιο αποτέλεσμα έχω. Σβήνει όσα κενά και να του βάλεις, αφήνοντας μόνο ένα, αλλά σβήνει και τον χαρακτήρα πριν το κενό. Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 2, 2014 Author #8 Κοινοποίηση Δεκέμβριος 2, 2014 Επίσης, ανάμεσα στις απεγνωσμένες μου προσπάθειες να βγάλω άκρη, ανακάλυψα πως στο else if (τώρα πια) αν κάνω το sc >= 1 σκέτο sc > 1 σβήνει το κενό όταν είναι ένα, κάνει αυτό που θέλω για 2 και 3 κενά, και πάνω από τα 4 αφήνει παραπάνω του ενός. Link to comment Share on other sites More sharing options...
deninho Δεκέμβριος 2, 2014 #9 Κοινοποίηση Δεκέμβριος 2, 2014 Στο πρώτο if (στο πρώτο κενό δηλαδή) βάλε και ένα putchar και έφτιαξε Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 2, 2014 Author #10 Κοινοποίηση Δεκέμβριος 2, 2014 Προσκυνάω! Επιτέλους θα μπορέσω να αρχίσω και την κανονική εργασία, αφού καταλάβω τι παίχτηκε εδώ πέρα Ευχαριστώ πολύ για την βοήθεια! Link to comment Share on other sites More sharing options...
deninho Δεκέμβριος 2, 2014 #11 Κοινοποίηση Δεκέμβριος 2, 2014 που κόλλησες; Link to comment Share on other sites More sharing options...
defiant Δεκέμβριος 2, 2014 #12 Κοινοποίηση Δεκέμβριος 2, 2014 κενο λεει ή white characters γενικά η άσκηση ? Μηπως θα πρεπει να κοιτας δηλαδη και για tab character \t ? Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 2, 2014 Author #13 Κοινοποίηση Δεκέμβριος 2, 2014 Γενικά η άσκηση πολλά λέει, ας μην το κάνουμε θέμα :ρ Δεν θέλω βοήθεια σε αυτή, ακόμα τουλάχιστον... White character λέει, αλλά ζητάει και άλλα, αυτό μάλλον είναι το λιγότερο. που κόλλησες;Πουθενά, απλά το έγραψα στον κώδικα εκείνη την στιγμή, δεν έκατσα να το δω πως λειτουργεί για να το καταλάβω πως δουλεύει. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.