[C++]Szyfr Gaderypoluki
Ostatnio zmodyfikowano 2014-05-16 22:50
Amakesh Temat założony przez niniejszego użytkownika |
[C++]Szyfr Gaderypoluki » 2014-05-16 14:56:56 Witam! Mam program, którego zadaniem jest szyfrowanie podanego przez użytkownika ciągu znaków. Niestety nie działa to dobrze np po podaniu ABCD powinnam otrzymać GBCE a dostaję GBCDD.
#include <iostream> #include <string>
using namespace std;
string GaDeRy( string s, string szyfr ) { int i, j; for( i = 0; i < s.size(); i++ ) { for( j = 0; j < szyfr.size(); j++ ) { if( s[ i ] == szyfr[ j ] && j % 2 == 0 ) { s[ i ] = szyfr[ j + 1 ]; } if( s[ i ] == szyfr[ j ] && j % 2 != 0 ) { s[ i ] = szyfr[ j - 1 ]; } else s[ i ] = s[ i ]; } } return s; }
int main( int argc, char ** argv ) { string s, w; string szyfr( "GADERYPOLUKIgaderypoluki" ); int inst; cout << "Podaj ciąg znaków, który ma zostać zaszyfrowany: " << "\n"; cin >> s; cout << "Wybierz rodzaj szyfru: " << "\n" << "[1]GA-DE-RY-PO-LU-KI" << "\n" << "[2]PO-LI-TY-KA-RE-NU" << "\n" << "[3]KA-CE-MI-NU-TO-WY" << "\n"; while( cin >> inst ) { switch( inst ) { case 1: GaDeRy( s, szyfr ); cout << "Wynik: " << "\n"; cout << GaDeRy( s, szyfr ); break; case 2: break; case 3: break; } } return 0; }
|
|
maly |
» 2014-05-16 15:29:12 Za bardzo skomlikowane, miej takiego for-a reszte spróbuj sobie dopisać. for( j = 0; j < szyfr.size(); j += 2 )
|
|
Adik80 |
» 2014-05-16 17:40:25 Twoj algorym umozliwia wielokrotna zamiane. czyli najpierw znajdujesz D i zamieniasz na E, a potem znajdujesz E i zamieniasz spowrotem na D. |
|
Amakesh Temat założony przez niniejszego użytkownika |
» 2014-05-16 22:05:08 Bo tak działa ten szyfr: np słowo GAJ po zakodowaniu będzie wyglądało tak: AGJ |
|
Monika90 |
» 2014-05-16 22:50:24 Raz, to jest nie potrzebne, bo to przecież nic nie robi. A dwa, jak już znajdziesz literę i zamienisz, to przerywaj wewnętrzną pętlę za pomocą break; |
|
« 1 » |