Witam mam do napisania program w C ,sprawdzajacy poprawnosc PESELu. Wszystko działa poza obliczaniem cyfry kontrolnej. Zauwarzylem ze przy zamianie string na int w funkcji atoi , moge wprowadzic tylko 9 znakow . Czy moglby ktos pomoc mi z tym albo chociaz mnie nakierowac ,jak poradzic sobie z tym problemem?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char pesel[11];
printf("Podaj swoj PESEL:");
scanf("%s",pesel);
if((pesel[0]&&pesel[1]&&pesel[6]&&pesel[7]&&pesel[8]>='0')&&(pesel[0]&&pesel[1]&&pesel[6]&&pesel[7]&&pesel[8]<='9'))
{
if (pesel[2]%2==1)
{
if((pesel[3]>='0')&&(pesel[3]<='2'))
{
printf("Podales dobra 4 pozycje");
}
else
{
printf("Podales bledna 4 pozycje");
return 0;
}
}
if(pesel[3]=='2')
{
if(((pesel[4]>='0')&&(pesel[4]<='2'))&&((pesel[5]>='0')&&(pesel[5]<='9')))
{
printf("Podales dobry luty");
}
else if(pesel[2]%2==1)
{
printf("Podales dobry grudzien");
if((pesel[4]=='3')&&(pesel[5]<='1'))
{
printf("podales dobrze (30,31) ");
}
else
{
printf("podales zle(32 i wiecej)");
return 0;
}
}
else
{
printf("Podales zly luty");
return 0;
}
}
else if(pesel[3]=='4'||pesel[3]=='6'||pesel[3]=='9'||(pesel[2]=='1'&& pesel[3]=='1'))
{
if((pesel[4]>='0' && pesel[4]<='2')&&(pesel[5]>'0' && pesel[4]<='9'))
{
printf("podales dobrze (0,29) ");
}
else if((pesel[4]=='3')&&(pesel[5]=='0'))
{
printf("podales dobrze (30) ");
}
else
{
printf("podales zle ! ");
return 0;
}
}
else if(pesel[3]=='1'||pesel[3]=='3'||pesel[3]=='7'||pesel[3]=='8'||(pesel[2]=='1'&& pesel[3]=='0'))
{
if((pesel[4]>='0' && pesel[4]<='2')&&(pesel[5]>'0' && pesel[4]<='9'))
{
printf("podales dobrze (0,29) ");
}
else if((pesel[4]=='3')&&(pesel[5]<='1'))
{
printf("podales dobrze (30,31) ");
}
else
{
printf("podales zle ! ");
return 0;
}
}
else
{
("Podales cos zle");
}
}
else
{
printf("Podales bledny pesel");
return 0;
}
int suma=pesel[0]*1+pesel[1]*3+pesel[2]*7+pesel[3]*9+pesel[4]*1+pesel[5]*3+pesel[6]*7+pesel[7]*9+pesel[8]*1+pesel[9]*3;
printf("%d",suma);
if(pesel[10]==(10-suma%10))
{
printf("Podales dobra cyfre kontrolna");
printf("Brawo udalo ci sie podac dobry pesel");
}
else
{
printf("Podales zla cyfre kontrolna");
return 0;
}
return 0;
}