Opisz dokładnie problem, a jeśli potrzeba to zilustruj go screenem.
Drobna wpadka
Majki zmiótł cię z planszy
Były w środku mnie dwa wilki. Jeden chciał wstawić obrazek pod kłótnię, drugi wholesome mema
Najlepszy rodzaj turysty
On nic nie wie
Skąd te babcie mają takie siano?!
Zobacz więcej popularnych memów
Komentarze
Odśwież20 lutego, 13:41
To data moich urodzin
Odpisz
26 stycznia, 11:06
Jak ktoś chce kod to
Odpisz
26 stycznia, 11:10
@AlPoziomka:
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
int main()
{
int miesiac = 0;
int dzien = 0;
cout << "program do sprawdzania znaku zodiaku\npodaj miesiac urodzin" << endl;
cin >> miesiac;
cout << "\npodaj dzien twoich urodzin" << endl;
cin >> dzien;
//styczen
if (miesiac == 1)
{
if (dzien >= 1 && dzien <= 20)
{
cout << "masz koziorozca";
Sleep(1000);
return 0;
}
else if(dzien >= 21 && dzien < 35)
{
cout << "masz wodnika";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//luty
else if (miesiac == 2)
{
if (dzien >= 1 && dzien <= 18)
{
cout << "masz wodnika";
Sleep(1000);
return 0;
}
else if (dzien >= 19 && dzien < 35)
{
cout << "masz ryby";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//marzec
else if (miesiac == 3)
{
if (dzien >= 1 && dzien <= 20)
{
cout << "masz ryby";
Sleep(1000);
return 0;
}
else if (dzien >= 21 && dzien < 35)
{
cout << "masz barana";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//kwiecien
else if (miesiac == 4)
{
if (dzien >= 1 && dzien <= 19)
{
cout << "masz barana";
Sleep(1000);
return 0;
}
else if (dzien >= 20 && dzien < 35)
{
cout << "masz byka";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//maj
else if (miesiac == 5)
{
if (dzien >= 1 && dzien <= 22)
{
cout << "masz byka";
Sleep(1000);
return 0;
}
else if (dzien >= 23 && dzien < 35)
{
cout << "masz bliznieta";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//czerwiec
else if (miesiac == 6)
{
if (dzien >= 1 && dzien <= 21)
{
cout << "masz bliznieta";
Sleep(1000);
return 0;
}
else if (dzien >= 22 && dzien < 35)
{
cout << "masz raka";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//lipiec
else if (miesiac == 7)
{
if (dzien >= 1 && dzien <= 23)
{
cout << "masz raka";
Sleep(1000);
return 0;
}
else if (dzien >= 24 && dzien < 35)
{
cout << "masz lwa";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
Odpisz
26 stycznia, 11:11
@AlPoziomka:
//sierpien
else if (miesiac == 8)
{
if (dzien >= 1 && dzien <= 23)
{
cout << "masz lwa";
Sleep(1000);
return 0;
}
else if (dzien >= 24 && dzien < 35)
{
cout << "masz panne";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//wrzesien
else if (miesiac == 9)
{
if (dzien >= 1 && dzien <= 22)
{
cout << "masz panne";
Sleep(1000);
return 0;
}
else if (dzien >= 23 && dzien < 35)
{
cout << "masz wage";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//pazdziernik
else if (miesiac == 10)
{
if (dzien >= 1 && dzien <= 22)
{
cout << "masz wage";
Sleep(1000);
return 0;
}
else if (dzien >= 23 && dzien < 35)
{
cout << "masz skorpiona";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//listopad
else if (miesiac == 11)
{
if (dzien >= 1 && dzien <= 22)
{
cout << "masz skorpiona";
Sleep(1000);
return 0;
}
else if (dzien >= 23 && dzien < 35)
{
cout << "masz strzelca";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
//grudzien
else if (miesiac == 12)
{
if (dzien >= 1 && dzien <= 21)
{
cout << "masz strzelca";
Sleep(1000);
return 0;
}
else if (dzien >= 22 && dzien < 35)
{
cout << "masz wodnika";
Sleep(1000);
return 0;
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
else
{
cout << "masz ...ja";
Sleep(1000);
return 0;
}
}
Odpisz
26 stycznia, 11:12
@AlPoziomka: k...a jeja tabów nie daje
Odpisz
Edytowano - 26 stycznia, 11:50
@AlPoziomka: Jezu Chryste, ile if'ów...
Zamiast miliona if...else... można użyć switch. Generalnie dużo bardziej uprościć to można. Nie wiem jak tam wygląda ze znakami zodiaku i dniami według których się przydziela w danym miesiącu, ale potencjalnie może nawet dało by się to zrobić w zupełności bez warunków, albo z jakimiś pojedyńczymi. Same znaki w tablicy jakiejś by można przechować.
Odpisz
26 stycznia, 11:53
@Noxen: nwm, nie ja pisałem, ja nawet nwm na czy polega c++
Odpisz
26 stycznia, 15:29
@AlPoziomka: moza urzyć funkcji Switch..
Odpisz
26 stycznia, 15:35
@AlPoziomka: using namespace std;
Odpisz
26 stycznia, 16:35
@Noxen: wystarczy zrobić dwie hashmapy. Pierwsza przechowuje w którym dniu roku zaczyna się zerowy dzień danego miesiąca. Dla przykładu dla stycznia byłoby to 0, dla lutego 31. W ten sposób można obliczyć którego dnia roku która ma urodziny dodając dzień do wartości przypisanej do konkretnego miesiąca. Przykładowo 15 stycznia jest 15 dniem roku, 4 luty 35 dniem roku.
Druga hashmapa przechowywałaby zakres dla każdego dnia zodiaku. Jeśli ktoś poda datę 29 czerwca za pomocą pierwszej mapy można wyliczyć że jest to 180 dzień roku. Następnie za pomocą drugiej hashmapy można sprawdzić że 180 dzień roku przypada rakowi.
Ewentualnie wywalić pierwszą hashmapę i w jakiś inny sposób obliczyć który dzień miesiąca przypada danemu dniu roku, ale imo hashmapa jest najszybsza
Odpisz
26 stycznia, 18:10
@Raskan: można też przechowywać dla każdego miesiąca dzień od którego zaczyna się kolejny znak zodiaku i wyznaczać znak zodiaku wzorkiem. Napisałem program bez instrukcji warunkowych, gdzie cały Main na dobrą sprawę mieści się w 10 linijkach:
int main()
{
string znaki[] = {"Koziorozec", "Wodnik", "Ryby", "Baran", "Byk", "Bliznieta", "Rak", "Lew", "Panna", "Waga", "Skorpion", "Strzelec"};
int dni[] = {20, 18, 20, 19, 22, 21, 23, 22, 22, 22, 22, 21};
int miesiac, dzien;
cout << "Podaj miesiac urodzenia: ";
cin >> miesiac;
cout << "Podaj dzien urodzenia: ";
cin >> dzien;
int id = (miesiac-1 + (int)(dzien > dni[miesiac-1])) % 12;
cout << "Twoj znak to: " << znaki[id];
return 0;
}
Jeja może niestety trochę rozwalać. W linijce z wyliczeniem id taki sprytny wzorek z wykorzystaniem rzutowania boolean'a na int'a.
Odpisz
27 stycznia, 00:25
@Noxen: Ale to jest program który wypluwa jedną z kilkunastu informacji, if nie robi krzywdy
Odpisz
27 stycznia, 00:38
@Denominativus: znaczy tak, ja nie mówię że samo używanie warunków to coś złego, tylko bardziej chciałem pokazać że nie potrzebna jest taka nadmiarowość, szczególnie że w tym problemie nie są one na dobrą sprawę w ogóle potrzebne. Na pewno nie ma sensu tworzyć warunku na każdy przypadek i już lepiej byłoby miesiąc umieścić w switch'u.
Odpisz
31 stycznia, 01:39
@AlPoziomka: k*wa ...jowy kod xd
Odpisz
31 stycznia, 14:34
@YFYDB: No jest napisany w C++, także to się rozumie samo przez się
Odpisz
31 stycznia, 14:37
@Denominativus: przecież to nie kwestia języka a osoby
Odpisz
31 stycznia, 17:37
@Raskan: Chyba, że tym językiem jest C++
Odpisz
31 stycznia, 18:58
@Denominativus: przecież C++ to piękny język
Odpisz
31 stycznia, 22:46
@Noxen: Wolę niemiecki
Odpisz
26 stycznia, 15:28
Programista nie informatyk!
Odpisz
26 stycznia, 11:02
Beka by była jakby zawsze odpowiedzią było masz raka
Odpisz
24 stycznia, 18:40
Nie pomylił się
Odpisz
24 stycznia, 16:18
POV: nazywasz się paweł dratwa
Odpisz
24 stycznia, 16:06
chłop co sie urodził w ten sam dzień co ja
Odpisz
24 stycznia, 16:08
@AlPoziomka: i zabrakło mu 5 dni do mnie
Odpisz