TechMonkey Δημοσιεύτηκε Δεκέμβριος 1, 2014 #1 Κοινοποίηση Δημοσιεύτηκε Δεκέμβριος 1, 2014 (edited) Το πρόβλημα είναι το εξής: Αντιγραφή εισόδου στην έξοδο και, εφόσον υπάρχουν πάνω από ένα κενά, να μένει μόνο ένα. Έχω καταφέρει να γράψω κώδικα που κάνει αυτό, αλλά σβήνει και ένα χαρακτήρα από την προηγούμενη των κενών λέξη. Το "tricky" κομμάτι είναι πως "απαγορεύεται" η χρήση πινάκων και δεικτών, γιατί μετά θα χρησιμοποιηθεί και σε άσκηση το κομμάτι αυτό. Έχω φάει το κεφάλι μου 3-4 μέρες και δεν μπορώ να το διορθώσω... Any help appreciated. Έγινε επεξεργασία Δεκέμβριος 1, 2014 από TechMonkey 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 (edited) Άλλαξε το δεύτερο if σε else if edit: και βάλε στις συνθήκες του πρώτου if και το εξής: && sc == 0 Έγινε επεξεργασία Δεκέμβριος 1, 2014 από EraserheadX 1 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 και έφτιαξε 1 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 ? 1 Link to comment Share on other sites More sharing options...
TechMonkey Δεκέμβριος 2, 2014 Author #13 Κοινοποίηση Δεκέμβριος 2, 2014 Γενικά η άσκηση πολλά λέει, ας μην το κάνουμε θέμα :ρ Δεν θέλω βοήθεια σε αυτή, ακόμα τουλάχιστον... White character λέει, αλλά ζητάει και άλλα, αυτό μάλλον είναι το λιγότερο. που κόλλησες;Πουθενά, απλά το έγραψα στον κώδικα εκείνη την στιγμή, δεν έκατσα να το δω πως λειτουργεί για να το καταλάβω πως δουλεύει. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now