Prosze o pomoc w zlikwidowaniu błędów
#include<stdio.h>
#include<stdlib.h>
void main()
{
int dzien;
int mies;
int rok;
system("cls");
printf("Podaj rok urodzenia: ");
scanf("%d",&rok);
if(rok>0)
{
printf("Podaj miesiac urodzenia");
scanf("%d",&mies);
if(mies>0&&mies<13)
{
prinf("Podaj dzien urodzenia");
scanf("%d",&dzien);
if(mies==1 || mies==3 || mies==5 || mies==7 || mies==8 || mies==10 || mies==12)
{
if(dzien>0&&dzien<32);
else
printf("Zla data");
}
if(mies==4 || mies=6 || mies==9 || mies==11);
{
if(dzien>0&&dzien<31);
else
printf("zla data");
}
if(mies==2);
{
if((rok%100==0 || (rok%4)==0));
{
if(dzien>0&&dzien<30);
else
printf("Zla data");
}
else
{
if(dzie>0&&dzien<29);
else
printf("zla data");
}
}
}
}
else
printf("Zla data");
system("pause");
}
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2025 KUDO.TIPS - All rights reserved.
Łomatkoboska...
Za błąd przyjmuję również korzystanie z wrednego `system`.
Przestań kompilować w Dev-C++ i pobierz normalne środowisko, które podtrzymuje konsolę...
Tutaj wersja programu tak, jak ja bym to napisał (czyli nota bene, poprawnie); testowana na GCC 4.7.0 :)
Oczywiście wszystko zgodne ze standardem C++ :)
Link z kodem:
http://pastebin.com/Q9d8mmjc
Kod:
#include <stdio.h>
#include <stdlib.h>
bool isValidDay(int day, int month, int year)
{
if (month == 1 || 2 || 3 || 7 || 8 || 10 || 12)
return (day>0 && day<32);
if (month == 4 || 6 || 8 || 11)
return (day>0 && day<31);
if (month == 2)
{
if ((year%100)==0 || (year%4)==0)
return (day>0 && day<30);
} else
return (day>0 && day<29);
}
int main(int argc, char** argv)
{
int day, month, year;
printf("Podaj rok urodzenia: ");
if (!scanf("%d", &year))
return 1;
if (year < 0)
return 2;
printf("Podaj miesiac urodzenia: ");
if (!scanf("%d", &month))
return 3;
if (month<1 || month>12)
return 4;
printf("Podaj dzien urodzenia: ");
if (!scanf("%d", &day))
return 5;
if (!isValidDay(day, month, year))
return 6;
printf("All ok! :)");
return 0;
}
Edit: bugfix ;)