Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

if else, program sprawdzający poprawność PESEL

Ostatnio zmodyfikowano 2017-01-22 14:34
Autor Wiadomość
andrzejek97
Temat założony przez niniejszego użytkownika
if else, program sprawdzający poprawność PESEL
» 2017-01-21 20:13:13
Witam, mam taki oto program, który sprawdza poprawność numeru pesel na podstawie cyfry kontrolnej, która tutaj jest wyliczana na pewno dobrze, jak również na podstawie sprawdzenia płci, płeć męska ma na końcu numeru pesel zawsze numer nieparzysty, płeć damska parzysty, nie wiem czemu nie wykonują mi się poprawnie późniejsze instrukcje zaczynając od pierwszego if..
C/C++
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, c, d, e, f, g, h, i, j, p, sum, wynik;
    char Pesel[ 12 ];
    char plec;
   
    printf( "Podaj plec, napisz 'k' lub 'K' jesli jestes kobieta, napisz 'm' lub 'M' jesli jestes mezczyzna: \n" );
    scanf( "%c", & plec );
    printf( "Podaj nr PESEL: " );
    scanf( "%s", Pesel );
    a = Pesel[ 0 ] - '0';
    b = Pesel[ 1 ] - '0';
    c = Pesel[ 2 ] - '0';
    d = Pesel[ 3 ] - '0';
    e = Pesel[ 4 ] - '0';
    f = Pesel[ 5 ] - '0';
    g = Pesel[ 6 ] - '0';
    h = Pesel[ 7 ] - '0';
    i = Pesel[ 8 ] - '0';
    j = Pesel[ 9 ] - '0';
    p = Pesel[ 10 ] - '0';
    printf( "kontrolna:%d\n", p );
    printf( "plec:%c\n", plec );
    sum = 1 * a + 3 * b + 7 * c + 9 * d + 1 * e + 3 * f + 7 * g + 9 * h + 1 * i + 3 * j;
    wynik = 10 -( sum % 10 );
    printf( "Suma:%d\nWynik:%d\n", sum, wynik );
   
   
    if(( plec == 'k' ) ||( plec == 'K' ) )
    {
        if( p ==( 0 || 2 || 4 || 6 || 8 ) )
        {
            sum = 1 * a + 3 * b + 7 * c + 9 * d + 1 * e + 3 * f + 7 * g + 9 * h + 1 * i + 3 * j;
            wynik = 10 -( sum % 10 );
            printf( "Suma:%d\nWynik:%d\n", sum, wynik );
           
           
            if( wynik == p ) { printf( "\n\n PESEL poprawny.\n\n" ); } else printf( "\n\nPESEL bledny!\n\n" );
           
        } else printf( "PESEL bledny\n" );
       
    }
    else
    {
        if( p ==( 1 || 3 || 5 || 7 || 9 ) )
        {
            sum = 1 * a + 3 * b + 7 * c + 9 * d + 1 * e + 3 * f + 7 * g + 9 * h + 1 * i + 3 * j;
            wynik = 10 -( sum % 10 );
            printf( "Suma:%d\nWynik:%d", sum, wynik );
           
           
            if( wynik == p ) { printf( "\n\n PESEL poprawny.\n\n" ); } else printf( "\n\nPESEL bledny!\n\n" );
           
        } else printf( "PESEL bledny\n" );
       
    }
   
   
    system( "PAUSE" );
   
    return 0;
}
P-156750
SeaMonster131
» 2017-01-22 14:34:43
Warunki w if łączysz w ten sposób:
if( p == 1 || p == 3 || p == 5 || p == 7 || p == 9 )
.
P-156778
« 1 »
  Strona 1 z 1