#include <iostream>
template <typename T> T getVar(const char* str) { T result; std::cout << str << std::endl; std::cin >> result; return result; }
struct znakZodiaku { const char* m_str; int m_miesiac, m_dzien; };
static znakZodiaku g_znaki[] = { { "koziorozec", 1, 1 }, { "wodnik", 1, 20 }, { "ryby", 2, 19 }, { "baran", 3, 21 }, { "byk", 4, 20 }, { "bliznieta", 5, 23 }, { "rak", 6, 22 }, { "lew", 7, 23 }, { "panna", 8, 24 }, { "waga", 9, 23 }, { "skorpion", 10, 23 }, { "strzelec", 11, 22 }, { "koziorozec", 12, 22 }, { "###", 13, 1 } };
const char* ustalZnak(int dzien, int miesiac) {
const char* result = "nie znaleziono!";
for(int i = 0; i < ((sizeof(g_znaki)/sizeof(znakZodiaku))-1); ++i)
if((miesiac == g_znaki[i].m_miesiac && dzien >= g_znaki[i].m_dzien) || (miesiac > g_znaki[i].m_miesiac)) result = g_znaki[i].m_str;
return result;
}
int main() {
std::cout << "program do sprawdzania znaku zodiaku" << std::endl;
std::cout << "znak zodiaku: " << ustalZnak(getVar<int>("podaj dzien miesiaca twoich urodzin: "), getVar<int>("podaj miesiac swoich urodzin: "));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBnZXRWYXIoY29uc3QgY2hhciogc3RyKSB7IFQgcmVzdWx0OyBzdGQ6OmNvdXQgPDwgc3RyIDw8IHN0ZDo6ZW5kbDsgc3RkOjpjaW4gPj4gcmVzdWx0OyByZXR1cm4gcmVzdWx0OyB9CnN0cnVjdCB6bmFrWm9kaWFrdSB7IGNvbnN0IGNoYXIqIG1fc3RyOyBpbnQgbV9taWVzaWFjLCBtX2R6aWVuOyB9OwpzdGF0aWMgem5ha1pvZGlha3UgZ196bmFraVtdID0geyB7ICJrb3ppb3JvemVjIiwgMSwgMSB9LCB7ICJ3b2RuaWsiLCAxLCAyMCB9LCB7ICJyeWJ5IiwgMiwgMTkgfSwgeyAiYmFyYW4iLCAzLCAyMSB9LCB7ICJieWsiLCA0LCAyMCB9LCB7ICJibGl6bmlldGEiLCA1LCAyMyB9LCB7ICJyYWsiLCA2LCAyMiB9LCB7ICJsZXciLCA3LCAyMyB9LCB7ICJwYW5uYSIsIDgsIDI0IH0sIHsgIndhZ2EiLCA5LCAyMyB9LCB7ICJza29ycGlvbiIsIDEwLCAyMyB9LCB7ICJzdHJ6ZWxlYyIsIDExLCAyMiB9LCB7ICJrb3ppb3JvemVjIiwgMTIsIDIyIH0sIHsgIiMjIyIsIDEzLCAxIH0gfTsKY29uc3QgY2hhciogdXN0YWxabmFrKGludCBkemllbiwgaW50IG1pZXNpYWMpIHsKCWNvbnN0IGNoYXIqIHJlc3VsdCA9ICJuaWUgem5hbGV6aW9ubyEiOwoJZm9yKGludCBpID0gMDsgaSA8ICgoc2l6ZW9mKGdfem5ha2kpL3NpemVvZih6bmFrWm9kaWFrdSkpLTEpOyArK2kpCgkJaWYoKG1pZXNpYWMgPT0gZ196bmFraVtpXS5tX21pZXNpYWMgJiYgZHppZW4gPj0gZ196bmFraVtpXS5tX2R6aWVuKSB8fCAobWllc2lhYyA+IGdfem5ha2lbaV0ubV9taWVzaWFjKSkgcmVzdWx0ID0gZ196bmFraVtpXS5tX3N0cjsKCXJldHVybiByZXN1bHQ7Cn0KaW50IG1haW4oKSB7CglzdGQ6OmNvdXQgPDwgInByb2dyYW0gZG8gc3ByYXdkemFuaWEgem5ha3Ugem9kaWFrdSIgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8ICJ6bmFrIHpvZGlha3U6ICIgPDwgdXN0YWxabmFrKGdldFZhcjxpbnQ+KCJwb2RhaiBkemllbiBtaWVzaWFjYSB0d29pY2ggdXJvZHppbjogIiksIGdldFZhcjxpbnQ+KCJwb2RhaiBtaWVzaWFjIHN3b2ljaCB1cm9kemluOiAiKSk7Cn0=