Problem z szyfrem Cezara

Problem z szyfrem Cezara
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

Witam.Robie prosty szyfr cezara i nie wiem dlaczego ten kod nie działa jak należy ;/

Kopiuj
public void cezara()
    {
        Console.Clear();
        Console.WriteLine("Podaj tekst do zaszyfrowania...");
        string dozaszyfrowania = Console.ReadLine();
        dozaszyfrowania.ToUpper();
        string zaszyfrowany2 = "";
        for (int i = 0; i < dozaszyfrowania.Length; i++)
        {
            char znak = dozaszyfrowania[i];
            int szyfrowanie = (int)znak + 3;
            if (szyfrowanie > 90)
            {
                szyfrowanie =szyfrowanie-25;
            }
            char zaszyfrowany = (char)szyfrowanie;
            zaszyfrowany2 = zaszyfrowany2 + zaszyfrowany;
        }
        Console.WriteLine(zaszyfrowany2);
        Console.ReadLine(); 

a kiedy usunę

Kopiuj
  if (szyfrowanie > 90)
            {
                szyfrowanie =szyfrowanie-25;
            }
 

jest ok
Dlaczego?
Pozdrawiam

ma ktoś pomysł?

MR
  • Rejestracja: dni
  • Ostatnio: dni
0

Kod w C:

Kopiuj
#include <stdio.h>
#include <ctype.h>

int main(void)
{
    char x;
    while((x=getchar())!=EOF)
    {
        if(isalpha(x))
           if(x + 2 == 90)
              printf("%c",65);
           else if(x + 2 == 91)
              printf("%c",66);
           else if(x + 2 == 92)
              printf("%c",67);
           else
              putchar(x+3);
	else
	   putchar(x);
    }
    return 0;
}


Czyżby zadanie z spoj`a ?

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

szyfrowanie =szyfrowanie-25;

bo powinno być -26.

Kopiuj
using System;
using System.Text;
class SzyfrCezara
{
        public static void Main()
        {
                Console.Clear();
                Console.WriteLine("Podaj tekst do zaszyfrowania...");
                string dozaszyfrowania = Console.ReadLine().ToUpper();
                StringBuilder zaszyfrowany = new StringBuilder();

                for (int i = 0; i < dozaszyfrowania.Length; i++)
                {
                        int szyfrowanie = (int)dozaszyfrowania[i] + 3;
                        if (szyfrowanie > 90)
                                szyfrowanie -= 26;
                        zaszyfrowany.Append((char)szyfrowanie);
                }
                string zaszyfrowany2 = zaszyfrowany.ToString();
                Console.WriteLine(zaszyfrowany2);
                Console.ReadLine();
        }
}

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.