Wskazówki: Zastanów się, co się dzieje, gdy pojawi się reprezentacja postaci, która ma mniej niż siedem znaków.
W szczególności pomyśl o tym, w jaki sposób tablice char[]
i boolean[]
są "wyrównane"; w jednym z nich pojawią się dodatkowe elementy, więc w jaki sposób wskaźniki powinny się pokrywać?
Rzeczywista odpowiedź: W tej chwili używasz pierwszy element tablicy znaków jako pierwszego elementu tablicy logicznej, która jest poprawna tylko gdy używasz ciąg siedmiu znaków. W rzeczywistości chcesz, aby elementy tablic pokrywały się (tak, że zera są wyściełane z przodu, a nie na końcu).
Jednym ze sposobów podejścia do tego problemu byłoby obejrzenie indeksów w pętli (np. Opracowanie różnicy wielkości i zmodyfikowanie binaryarray[i + offset]
). Ale jeszcze prostszym rozwiązaniem jest pozostawienie po lewej stronie ciągu znaków z zerami, aby mieć dokładnie siedem znaków przed przekształceniem go w tablicę znaków.
(Dodatkowe znaki: co zrobić, gdy w tablicy jest więcej niż 7 znaków, np. Jeśli ktoś podał 200
jako argument? W oparciu o oba powyższe rozwiązania, powinieneś być w stanie łatwo wykryć tę sprawę i obsługiwać ją specjalnie .)
Czy to praca domowa? Użyj podziału i reszty przez 2. – kan
Czy próbowałeś przejść przez kod, ręcznie lub przy użyciu debuggera? Nie powinno być wyzwaniem jeśli użyjesz '8' jako danych wejściowych i pozwoli ci zobaczyć, gdzie twój wynik zaczyna odbiegać od poprawności. –