Forum huvudsida -> Programmering -> [C++] Kodningsproblem
Sidor: 1
WiK | 20:54 - 13:e Mars 2007 | Post #1 | |
Medlem Inlägg: 6 Skicka PM |
nvm Senast redigerad 09:04 - 14:e Mars 2007 |
Slash | 20:57 - 13:e Mars 2007 | Post #2 | |
Medlem Inlägg: 141 Skicka PM |
Ska strängen "1134" räknas som 11, 13, 34 eller som 11 och 34? ------------------------- Ingen sigantur! |
WiK | 21:02 - 13:e Mars 2007 | Post #3 | |
Medlem Inlägg: 6 Skicka PM |
oo Senast redigerad 09:05 - 14:e Mars 2007 |
Slash | 21:14 - 13:e Mars 2007 | Post #4 | |
Medlem Inlägg: 141 Skicka PM |
Du kan använda ungefär samma metod som du använt nu. Det vill säga du definerar en array för att hålla reda på räkningen för varje tecken. Så något lite halv-psuedo så kan det se ut någonting såhär:
Felhantering, filläsning och buggfixning överlämnas varmt till dig . ------------------------- Ingen sigantur! Senast redigerad 21:16 - 13:e Mars 2007 |
WiK | 21:29 - 13:e Mars 2007 | Post #5 | |
Medlem Inlägg: 6 Skicka PM |
Tack så mycket Senast redigerad 21:30 - 13:e Mars 2007 |
WiK | 21:35 - 13:e Mars 2007 | Post #6 | |
Medlem Inlägg: 6 Skicka PM |
i Senast redigerad 09:05 - 14:e Mars 2007 |
Slash | 22:34 - 13:e Mars 2007 | Post #7 | |
Medlem Inlägg: 141 Skicka PM |
Ja, den största skillnaden mot din förra program är ju att man måste ha två tecken för att beräkna vilken siffra det är. Så först läses ett tecken till c2 in, som sedan flyttas till c1. Efter det läses ett nytt tecken till c2 in. Då har du två tecken. Det ena tecknet (det i c2) måste du ha även till nästa gång, så då flyttar du det till c1 innan du läser in ett nytt till c2, och så vidare. Så för strängen "1234" så blir det första varvet c1 = '1' och c2 = '2'. Nästa varv flyttas c2 till c1 och ett nytt tecken läses in till c2. Alltså: c1 = '2' och c2 = '3'. För varje varv beräknas också ett index genom att beräkna (c1-'0')*10 + c2-'0' som är lika med just 23 för c1 = '2' och c2 = '3'. Det som måste kollas innan detta görs är att c1 och c2 inte innehåller något annat tecken än en siffra (inte med i exemplet). PS. '0' är bara en teckenkonstant för talet 48 som du använder. EDIT Skrev en lite elegantare
------------------------- Ingen sigantur! Senast redigerad 22:50 - 13:e Mars 2007 |
WiK | 23:31 - 13:e Mars 2007 | Post #8 | |
Medlem Inlägg: 6 Skicka PM |
nvm Senast redigerad 09:04 - 14:e Mars 2007 |
Slash | 23:45 - 13:e Mars 2007 | Post #9 | |
Medlem Inlägg: 141 Skicka PM |
Du skulle alltså fortfarande räkna 0-9 också? Isåfall måste du öka något i stil med antal[c-48]++ också någonstans. Du får se till att det blir rätt i slutet på filen (om filen innehåller ojämnt antal tecken). Räkningen av två siffror verkar fungera. ------------------------- Ingen sigantur! |
WiK | 23:47 - 13:e Mars 2007 | Post #10 | |
Medlem Inlägg: 6 Skicka PM |
Tackar nu fungerar allt finfint |
Sidor: 1
Forum huvudsida -> Programmering -> [C++] Kodningsproblem
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-05 19:19
Vecka: 18
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.