Jak dodać różny wynik dla zsumowanych char (scanf) ?

0
#include <stdio.h>
#include <windows.h>
int main (void)

{
char znak1 [2];
    printf ("Podaj pierwszy znak: \n");
        scanf ("%s", &znak1);
        printf (" Wybrano %s \n", znak1);

char znak2 [2];
    printf ("Podaj drugi znak: \n");
        scanf ("%s", &znak2);
        printf (" Wybrano %s  \n\n", znak2);

printf (" Wybrane znaki to %s%s", znak1, znak2);

return 0;
}

Chciał bym by program po zakończeniu miał możliwość wyświetlania różnych wyników w zależności od wpisanych liter prze użytkownika.

Program ma działać tak:
Podałem pierwszą literę: W
Podałem drugą literę: E
program wyświetla mi wynik: Wybrałeś WE
a pod spodem WE = Warszawa Ełk

Podałem pierwszą literę: B
Podałem drugą literę: I
program wyświetla mi wynik: Wybrałeś BI
a pod spodem BI = Białystok Inowrocław

Podałem pierwszą literę: X
to program wyświetla mi komunikat: BŁĄD, nie ma takiej litery w bazie, podaj prawidłową literę... i wraca
ponownie do tego samego pytania
( i w tym miejscu chciał bym określić że prawidłowymi literami są: D, B , I , F , W a wszystkie inne znaki są nieprawidłowe!!!)

Podałem drugą literę: Z i tu tak samo ... zakres prawidłowy to A<B<C<D a wszystkie inne to błąd...

Jak to wszystko ogarnąć??

1

Proponuję, abyś zaczął od podstaw. Wiesz czym różni się znak, od łańcucha znakowego? Rozumiesz jak stosować funkcję scanf?

Skoro wczytujesz dwa znaki, to po co dwie tablice? Albo zastosuj dwie zmienne typu char, albo jedną dwuelementową tablicę. Funkcja scanf może też wczytać pojedyńcze litery, wystarczy użyć specifikatora "%c". Do walidacji, czy dana litera znajduje się w zbiorze dopuszczalnych przez Ciebie znaków możesz użyć np. funkcji memchr.

0

Ja właśnie jestem na samym początku. Siedzę w C od niespełna 3 tygodni :-) i paluchy mi się palą a wiedzy brak... i tak kombinuję jak PO kiedyś :-)

0

Może najpierw zrób dla jednej litery :)

Zrób tablice wskaźników na tekst.
Teraz zrób funkcję, która przyjmie jako parametr wskaźnik na tablicę i parametr na znak.

Przeleć tablicę i na każdym stringu, sprawdzaj pierwszą literę czy się zgadza ze znakiem podanym w parametrze, jak tak to zwracaj funkcją, który to element tablicy.
A jak nie znajdzie to zwróć -1, 0 to pierwszy element.

0

Przeleć z książki rozdziały o funkcjach, tablicach, wskaźnikach, powinno na początek wystarczyć.

0

Panie, czarna magia. 200 stron przede mną jeszcze do funkcji :-)
No nic, pozostaje uczyć się na tym co aktualnie robię...

0
gavallon napisał(a):

Panie, czarna magia. 200 stron przede mną jeszcze do funkcji :-)
No nic, pozostaje uczyć się na tym co aktualnie robię...

Przerabiaj po całych działach i wyciągaj wnioski.

Na oko, musisz być koło 160 strony, czyli przed operatorami i instrukcjami warunkowymi :D

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