Hej, piszę quiz w którym użytkownik sprawdza swoją wiedze matematyczną. Na ekranie pojawia się działanie i z klawiatury wczytuje się wynik. Jezeli jest on poprawny uzytkownik dostaje punkt. Znak działania i liczby(zakres 1-99) są generowane losowo.
Obliczenia wykonywane są dla trzech liczb, napisałem taką funkcje która liczy, ale zapis ten wydaje mi się nieelegancki i zastanawiam się czy nie da się tego jakoś uproscic.
argumenty a b c są wczesniej losowane i podawane do funckji, znaki działa tak samo.
Dodam, że działania potrzebuje zapisać w odróconej notacji polskiej. W następnym kroki chce dodać nawiasy co jeszcze bardziej wydłużyłoby liste
float dzialanie(float a, float b, float c, char operation1, char operation2)
{
if (operation1 == '+' && operation2 == '+')
return abc++;
if (operation1 == '+' && operation2 == '-')
return abc+-;
if (operation1 == '+' && operation2 == '*')
return abc*+;
if (operation1 == '+' && operation2 == '/')
return abc/+;
if (operation1 == '-' && operation2 == '+')
return abc-+;
if (operation1 == '-' && operation2 == '-')
return abc--;
if (operation1 == '-' && operation2 == '*')
return abc*-;
if (operation1 == '-' && operation2 == '/')
return abc/-;
if (operation1 == '*' && operation2 == '+')
return ab*c+;
if (operation1 == '*' && operation2 == '-')
return ab*c-;
if (operation1 == '*' && operation2 == '*')
return ab*c*+;
if (operation1 == '*' && operation2 == '/')
return ab*c/+;
if (operation1 == '/' && operation2 == '+')
return ab/c+;
if (operation1 == '/' && operation2 == '-')
return ab/c-;
if (operation1 == '/' && operation2 == '*')
return ab/c*;
if (operation1 == '/' && operation2 == '/')
return ab/c/;
return 0;
}