Zadanie szyfr Cezara.

crassman22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Jakiś pomysł dlaczego sędzia nie akceptuje?
http://pl.spoj.com/problems/JSZYCER/

Kopiuj
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string tekst;
    getline(cin, tekst);

    for(int i=0; i<=tekst.length()-1; i++)
    {
        if(tekst[i] == 'Z') { tekst[i] = 'C'; } 
        else if(tekst[i] == 'Y') { tekst[i] = 'B'; }
        else if(tekst[i] == 'X') { tekst[i] = 'A'; }
        else if(tekst[i] == 32 ) { tekst[i] = 32; }
        else {tekst[i] += 3;}
    }
		    
    cout << tekst << endl;	
	    
    return 0;
}
JA
  • Rejestracja: dni
  • Ostatnio: dni
0

Zgaduję, że chodzi o to, że pobierasz tylko jedną linię, a zadanie przewiduje tekst w wielu liniach.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

A co twój program zwraca dla przykładowych danych:

Kopiuj
ABC DEF
TERA EST ROTUNDA

? Zwróci odpowiedź tylko dla 1 linii bo czytasz tylko tyle...

crassman22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Teraz wyrzuca mi błąd naruszenia ochrony pamięci. W którym miejscu go popełniam?

Kopiuj
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string tekst;
   	
   	while(getline(cin, tekst))
   	{
		for(int i=0; i<=tekst.length()-1; i++)
		{
		    if(tekst[i] == 'Z') { tekst[i] = 'C'; } 
		    else if(tekst[i] == 'Y') { tekst[i] = 'B'; }
		    else if(tekst[i] == 'X') { tekst[i] = 'A'; }
		    else if(tekst[i] == 32 ) { tekst[i] = 32; }
		    else {tekst[i] += 3;}
		}
		    
		cout << tekst << endl;	
	}
	    
    return 0;
}
JA
  • Rejestracja: dni
  • Ostatnio: dni
0

Popełniasz błąd tutaj:

Kopiuj
for(int i=0; i<=tekst.length()-1; i++)

Nie rób tak, lepiej warunek dać taki:

Kopiuj
i < tekst.length()

Bo jeśli tekst jest zerowy (a wysypuje się właśnie dla pustych linii), to od 0 odejmujesz 1, tylko, że tekst.length jest liczbą bez znaku...

crassman22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Rozumiem, że wtedy niejako rezerwuję pamięć na TYP_MAX?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.