kolejna litera

0

Napisz program, który wczyta znak (z alfabetu angielskiego) z klawiatury i wypisze na ekran znak następny, według alfabetu.

 


#include <stdio.h>
#include <stdlib.h>

int main()
{
    char literka;
    scanf("%c",&literka);
    literka=literka+1;
if (literka==122)           //coś tu nie gra
        printf("a");
        else
    printf("%c",literka);
    return 0;


bez tego "ifa" program działa poprawnie, jednak chciałem aby po "z" pokazywał "a", ale coś nie gra, proszę o pomoc ;)

1

Zamiast magic numbers używaj znaczących stałych:

literka == 'z'

A ogólnie to najłatwiej to zrobić tak:

literka = getc() - 'a';
literka = (literka + 1) % 24;
putc(literka);

Oczywiście, że to nie musi wszędzie działać (sprawdź sobie standard i może zabłyśniesz u wykładowcy), ale na zdecydowanej większości systemów zadziała.

0

dzięki, za szybką odpowiedź ;)

druga część trochę niezrozumiała dla mnie na razie, ale to może się zagłębię w te funkcje,

chciałem też pojąć jak zrobić poprawnie w ten sposób jaki próbowałem, zmieniłem kod ASCII, na 'z', ale dalej to samo :/

1

Jak na moje działa: http://ideone.com/Cvg4E4

Jak sprawdzałem u siebie znalazłem jednak pewną lukę, prompt zasłaniał mi wyjście. Więc rozwiązaniem może być wydrukowanie znaku nowej linii przed zakończeniem programu.

0

ok ok, już śmiga.
Dzięki!

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