Twój kod jest długi. Jest to ponad 300 linii kodu, a czas na tej Ziemii człowiek ma ograniczony. Wierz mi lub nie, ale mało kto będzie chciał analizować kod linijka po linijce :) W miarę możliwości samodzielnie szukaj tego co Twoim zdaniem jest nieefektywne. Małe fragmenty wrzucaj na forum, na które pewnie ktoś chętnie udzieli Ci wskazówki :)
Przeglądając kod, mogę stwierdzić, że jest ładny. Nie używasz (co jest bardzo ważne) zmiennych globalnych, tworzysz dużo funkcji, dzięki czemu zrozumienie kodu jest prostsze. Nazywasz też funkcje po tym co robią, a nie np.funkcja1. To bardzo dobrze.
Co do Twoich pytań, to:
- Nie wiem jak jest w C, ale w C++ mógłbyś napisać :
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int znak;
znak=getch();
std::cout<<static_cast<char>(znak)<<'\n';
return 0;
}
Z racji tego, że piszesz w C nie możesz napisać static_cast, które jest lepsze. Możesz za spróbować zamienić to static_cast <char>(znak) na :
(char)(znak)
I oczywiście pozamieniać funkcje, które nie występują w C.
Co do pytania drugiego, to wszystko się da, więc najlepiej zapytać się nie czy się da, ale jak :)
W sprawie pytania trzeciego, to tak jest to dobre. Z tym, że lepszym pomysłem nie jest wrzucanie kodu, który zajmuje dużo lini kodu, tylko pojedyńcze funkcje/problemy. Ludzie mają jedno życie :)
Pozdrawiam i fajnie, że się rozwijasz :)