Sprawdzanie pełnoletności

0

Siemanko, mam problem, prawie wszystko mi działa lecz coś nie chodzi gdy wpisuję datę z zakresu 1997 z miesiącem mniejszym niż październik. Mógłby ktoś szybko znaleźć błąd?

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int a, b, c, d, e, f;
    printf("Podaj dzisiejsza date\n");
    printf("Rok:");
    scanf("%d", &a);
    printf("Miesiac:");
    scanf("%d", &b);
    printf("Dzien:");
    scanf("%d", &c);
    printf("Podaj date urodzenia\n");
    printf("Rok:");
    scanf("%d", &d);
    printf("Miesiac:");
    scanf("%d", &e);
    printf("Dzien:");
    scanf("%d", &f);
    
    if(d > a-18){
              printf("Nie jestes pelnoletni");
              }
    else if(d == a-18){
         if(e > b){
              printf("Nie jestes pelnoletni");
              }}
    else if(d == a-18){
         if(e < b){
         if(f > c){
              printf("Nie jestes pelnoletni");
              }}}
    else if(d == a-18){
         if(e == b){
         if(f == c){
              printf("Jestes pelnoletni");
              }}}
    else{
         printf("Jestes pelnoletni");
         }
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
2

Popraw wcięcia: http://format.krzaq.cc/
Nazwij zmienne po ludzku, a nie a, b, c, d, e, f.

Potem przed każdym prinf() wypisz jeszcze wartości tych wszystkich zmiennych (ew. możesz korzystać z debuggera). Wtedy będziesz wiedział dlaczego nie działa.

1

W trzecim warunku masz błąd. Przed sprawdzeniem dnia powinneś przyrównać miesiące

else if(d == a-18){
         if(e < b){
         if(f > c){

powinno być

else if(d == a-18){
         if(e == b){
         if(f > c){

A jeszcze lepiej jakbyś zapisał to

If((d > a-18) || (d == a-18 && e > b) || (d == a-18 && e == b && f > c))
{
         printf("Nie jestes pelnoletni");
}
else
{
         printf("Jestes pelnoletni");
}
2

Ależ sobie utrudniasz.

tie(today_year, today_month, today_day) > make_tuple(birth_year+18, birth_month, birth_day)

Ot, całe porównanie.

http://melpon.org/wandbox/permlink/E2CaXV44Ktg1TnuO

0

Dziękuję wzystkim za pomoc, następnym razem otaguję język w jakim piszę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1