В функции CheckDate() присутствует все необходимые проверки правильности введенной даты.
Код программы:
#include <iostream>
#include <locale>
using namespace std;
struct TDate{
int Day;
int Month;
int Year;
};
int CheckDate(TDate D) {
if (D.Month < 1 || D.Month > 12)
return 1;
if (D.Month % 2 == 1) {
if (D.Month < 8) {
if (D.Day < 1 || D.Day > 31)
return 2;
}
else {
if (D.Day < 1 || D.Day > 30)
return 2;
}
}
else{
if (D.Month == 2) {
if (D.Year % 4 == 0) {
if (D.Day < 1 || D.Day > 29)
return 2;
}
else {
if (D.Day < 1 || D.Day > 28)
return 2;
}
}
else {
if (D.Month >= 8) {
if (D.Day < 1 || D.Day > 31)
return 2;
}
else {
if (D.Day < 1 || D.Day > 30)
return 2;
}
}
}
return 0;
}
int main(void) {
TDate a = { 29, 2, 2035 },
b = { 29, 2, 2036 },
c = { 25, 12, 2056 },
d = { 31, 11, 2001 },
e = { 30, 4, 2004 },
g = { 2, 13, 2000 };
cout << CheckDate(a) << endl;
cout << CheckDate(b) << endl;
cout << CheckDate(c) << endl;
cout << CheckDate(d) << endl;
cout << CheckDate(e) << endl;
cout << CheckDate(g) << endl;
}
6952
Объяснение:
Двоюродная сестра - дочь брата или сестры матери или дочь брата или сестры отца.
Для того, чтобы найти двоюродную сестру, выполним следующие действия:
Найдём родителей Монро П.А.Выясним, есть ли у родителей братья/сёстры Выясним, есть ли у братьев/сестёр родителей дочериМонро П.А. в таблице 1 имеет ID 1384.
В таблице 2 ID_Ребёнка с номером 1384 соответствуют ID 2477 и ID 0285 из ID_Родителя (отец и мать Монро П.А.).
Проверим, есть ли у матери Монро П.А. брат/сестра:
В таблице 2 ID_Ребёнка с номером 2477 соответствуют ID 5791 и ID 6903 из ID_Родителя (отец и мать матери Монро П.А.). Найдём их детей.
ID 5791 из ID_Родителя соответствует, помимо ID 2477, ребёнок под ID 2554.
Таким образом мы нашли брата матери Монро П.А. Выясним, есть ли у него дочь:
ID_Родителя 2554 соответствуют два ID_Ребёнка: 6952 и 1415.
ID 6952 - женского пола, следовательно, она является дочерью брата матери Монро П.А, т.е. то, что мы искали.