Smegmiarz Temat założony przez niniejszego użytkownika |
[C++] Szyfr Polibiusza » 2018-05-22 23:00:44 Próbuję napisać szyfr Polibiusza ( szachownica Polibiusza) możliwie najprościej. Chcę przyporządkować litery A-Z odpowiednio "11"-"45" z "tabela". Po wpisaniu tekstu mają się wyświetlić odpowiednie cyfry zamiast liter. Ktoś pomoże ? #include<iostream>
using namespace std;
int main() { string tekst; int x; cout << "Tekst: " << endl; cin >> tekst; string tabela[] = { "11", "12", "13", "14", "15", "21", "22", "23", "24", "24", "25", "31", "32", "33", "34", "35", "41", "42", "43", "44", "45" }; string tabela2[] = { }; for( int i = 0; i <= tekst.length(); i++ ) { if( tekst[ i ] >= 65 && tekst[ i ] <= 90 ) tabela2[ i ] = tabela[ int(( tekst[ i ] - 65 ) ) ]; } cout << tekst << endl; for( int i = 0; i <= tekst.length(); i++ ) cout << tabela2[ i ] << endl; return 0; }
|
|
pekfos |
» 2018-05-22 23:04:01 A problem masz z..? |
|
YooSy |
» 2018-05-23 07:53:13 Robisz tablice int numbers[] z watościami, które cię interesują. Następnie robisz tablicę znaków, np. char characters[] lub używasz zwykłego std::string , który jest właśnie tablicą znaków i nadajesz mu odpowiednie wartości. Pod tym samym indeksem, muszą pasować do siebie wartości z obu tablic. Na koniec pobierasz tekst od użytkownika do stringa i czytasz go znak po znaku, konwertując na liczbę, czyli szukasz indeksu w swojej tablicy znaków tego znaku i wypisujesz liczbę z tablicy liczb spod znalezionego indeksu. |
|
maly7 |
» 2018-05-23 17:15:06 string tabela2[] = { }; Jaki to ma rozmiar? |
|
Smegmiarz Temat założony przez niniejszego użytkownika |
» 2018-05-23 22:18:03 Tak, mógłbym to tak zrobić YooSy ale spróbuje ogarnąć co u mnie jest źle. |
|
pekfos |
» 2018-05-23 22:32:29 Błędna tablica. Tu nawet nie potrzebujesz tablicy. Po prostu dopisuj wyniki na koniec jednego stringa. for( int i = 0; i <= tekst.length(); i++ )
|
Zły operator. Długość napisu ma być nieosiągalna dla i. string tabela[] = { "11", "12", "13", "14", "15", "21", "22", "23", "24", "24", "25", "31", "32", "33", "34", "35", "41", "42", "43", "44", "45" };
|
O ile to może być 'proste', krócej zapiszesz to faktyczną arytmetyką, a nie tablicą z kolejnymi liczbami. |
|
« 1 » |