Problem z szyfrem Cezara

2011-09-17 22:19
0

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

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ę

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

jest ok
Dlaczego?
Pozdrawiam

ma ktoś pomysł?

edytowany 1x, ostatnio: madmike, 2011-09-18 19:40

Pozostało 580 znaków

2011-09-18 15:03
0

Kod w C:

#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 ?

Pozostało 580 znaków

2011-09-18 19:05
0

szyfrowanie =szyfrowanie-25;

bo powinno być -26.

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();
        }
}
edytowany 1x, ostatnio: Azarien, 2011-09-18 19:07

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0