Jak zczytać pojedynczy znak (char)?

0

Witam serdecznie.
Mam do napisania program w C
"Odczytaj z klawiatury do odpowiednich zmiennych przy pomocy funkcji scanf:
-liczbe calkowita typu int,
-liczbe calkowita typu char,
-liczbe rzeczywista typu float.

Wyświetl na ekranie monitora odczytane wartości tych zmiennych.

Wykorzystaj kody formatujace polecenia printf do wyswietlenia kazdej z odczytanych zmiennych. Zaobserwuj jakie wartosci sa wyswietlane. Zmienna typu char wytswietl korzystajac z %c, %d, %f."

Napisałem taki program jednak mam problem ze zmienną typu char.

int main()
{
    int liczba;
    char znak;
    float rzecz;
    printf("Podaj liczbe:", liczba);
    scanf("%d", &liczba);
    printf("Podaj znak:", znak);
    scanf("%c", &znak);
    printf("Podaj liczbe rzeczywista:", rzecz);
    scanf("%f", &rzecz);
    printf("Liczba calkowita to:%d\n", liczba);
    printf("Znak to:%c\n", znak);
    printf("Liczba rzeczywista to:%f\n", rzecz);
    return 0;
}

Szukałem odpowiedzi na różnych serwisach, za pomocą wuja google, jednak nie uzyskałem odpowiedzi.

Z góry dziękuję za pomoc

3

Chodzi o pokazanie, że zmienna znakowa to tak naprawdę jeden bajt i znak jest właśnie na nim zakodowany za pomocą ASCII:

char ch = 'a';
printf("%d, %c, %f\n", ch, ch, ch);

Naturalnie wyświetlenie znaku jako float zostanie wskazane poprzez warning kompilatora.

Wynik:

// Kod litery 'a' to '97', a liczba zmiennoprzecinkowa to nieprawidłowy wynik
97, a, 0.000000
4

Zamiast

scanf("%c", &znak);

zrób scanf(" %c", &znak);

 i zadziała.

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