sprawdzanie płci z numeru PESEL

0

Witam wszystkich!
Mam problem, gdyż mam napisać program, który sprawdza i podaje płeć na podstawie danego numeru PESEL. Napisałem poniższy program, ale muszę konieczne zastosować w nim pętlę i sprawić, by w przypadku wciśnięcia po prostu klawisza ENTER zamiast podania kodu PESEL program automatycznie kończył działanie. Proszę o możliwie szybką pomoc!
Kod:

#include <stdio.h>
int main()
{
char tab[12];
printf("Podaj swoj numer PESEL: \n");
scanf("%s",tab);
if (tab[9] & 1) printf("Posiadacz powyzszego numeru PESEL jest mezczyzna.\n");
else printf("Posiadacz powyzszego numeru PESEL jest kobieta.\n");
return 0;
}

0

Czytaj znak po znaku.

0

#include <stdio.h>
int main()
{
char tab[12];
printf("Podaj swoj numer PESEL: \n");
for(int i=0;i<=10;i++)
{
scanf("%d",&tab[i]);
}
if (tab[9] & 1) printf("Posiadacz powyzszego numeru PESEL jest mezczyzna.\n");
else printf("Posiadacz powyzszego numeru PESEL jest kobieta.\n");
return 0;
}

Teraz jest z pętlą, kompiluje się ale później na końcu jest błąd. Czy da się zrobic to w pętli, ale tak żeby nie trzeba było zatwierdzać wpisanej liczby enterem? I jak zrobić, by w przypadku wcisniecia ENTER zamiast najpierw jakiejś liczby program kończył działanie? Z góry dziękuję za pomoc, niby prosty program a takie mam problemy...

0

Ta instrukcja służy do sprawdzania czy liczba jest parzysta, czy nie. Czy się mylę?

0

Według mnie powinno być tab[9]%2==0. Tak bym to napisał w c++, chociaż w c może być inaczej :P

0

Niestety nie w tym rzecz, bo ze zwykłym dzieleniem modulo jest to samo :/ Bardzo proszę o kolejne komentarze

0
char tab[12]={0};
printf("Podaj swoj numer PESEL: ");
for(int i=0;i<11;++i) scanf("%c",&tab[i]);
0

Dziękuję bardzo, pozostał jednak problem: jak zakończyć działanie programu w przypadku wciśnięcia klawisza ENTER przed uprzednim wpisaniem kodu PESEL? Trzeba użyć pętli while?

0
int i;
for(i=0;i<11;++i) if((scanf("%c",&tab[i])!=1)||(tab[i]=='\n')) break;
if(i!=11) return 1;
0

Hmm.. Teraz znowu gdy naciskam ENTER, to dodatkowo pojawia mi się któraś z instrukcji z tego ostatniego ifa poza pętlą. Oto kod:
#include <stdio.h>
int main()
{
char tab[12]={0};
printf("Podaj swoj numer PESEL: \n");
for(int i=0;i<11;i++)
{
if((scanf("%c",&tab[i])!=1)||(tab[i]=='\n')) break;
}
if (tab[9]&1) printf("Posiadacz powyzszego numeru PESEL jest mezczyzna.\n");
else printf("Posiadacz powyzszego numeru PESEL jest kobieta.\n");
return 0;
}

0

Bo jest trzy istotne różnicy.

0

Dobra, już sobie poradziłem, dziękuję bardzo wszystkim za pomoc! :)

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