Avatar billede vostrikov Nybegynder
13. april 2004 - 14:32 Der er 12 kommentarer og
1 løsning

Restart funktion til C.

Jeg skal bruge en restart funktion, hvis der er fejl i CPR-nummer -> Se nederst i program. Nogen der ligger inde med sådan en :) ?



#include <stdio.h>
#include <conio.h>

int fejlcpr = 0;

void main(void)



{



    char cpr[11];


    clrscr();

    printf("Du skal nu indtaste dit CPR-nummer\n\n          XXXXXX-XXXX");
    printf("\n\n        : ");
    scanf("%s", & cpr);
    printf("\n%s", cpr);
    //printf("\n%c", cpr[10]);


    if (cpr[0] >= '0' && cpr[0] <= '3'  && cpr[1] >= '0' && cpr[1] <= '9')
    {
    printf("\n\nDu er f›dt d. %c%c.", cpr[0], cpr[1]);
    }
    else
    {
    fejlcpr = 1; //printf("\n  Ugyldig Dato!  ");
    }


    if (cpr[2] == '0' && cpr[3] == '1')
    {
    printf(" Januar" );
    }

    if (cpr[2] == '0' && cpr[3] == '2')
    {
    printf(" Februar" );
    }

    if (cpr[2] == '0' && cpr[3] == '3')
    {
    printf(" Marts" );
    }

    if (cpr[2] == '0' && cpr[3] == '4')
    {
    printf(" April" );
    }

    if (cpr[2] == '0' && cpr[3] == '5')
    {
    printf(" Maj" );
    }

    if (cpr[2] == '0' && cpr[3] == '6')
    {
    printf(" Juni" );
    }

    if (cpr[2] == '0' && cpr[3] == '7')
    {
    printf(" Juli" );
    }

    if (cpr[2] == '0' && cpr[3] == '8')
    {
    printf(" August" );
    }

    if (cpr[2] == '0' && cpr[3] == '9')
    {
    printf(" September" );
    }

    if (cpr[2] == '1' && cpr[3] == '0')
    {
    printf(" Oktober" );
    }

    if (cpr[2] == '1' && cpr[3] == '1')
    {
    printf(" November" );
    }

    if (cpr[2] == '1' && cpr[3] == '2')
    {
    printf(" December" );
    }

    if (cpr[2] >= '1' )

    {


        if (cpr[3] > '2' )//|| '4' || '5' || '6' || '7' || '8' || '9')

            {
            fejlcpr = 1;
            }

    }

    if (cpr[4] > 47 && cpr[4] < 58 && cpr[5] > 47 && cpr[5] < 58)
    {
    printf(" 19%c%c", cpr[4], cpr[5]);
    }




    //if (cpr[10] == 49 && 51 && 53 && 55 && 57)
    if (cpr[10]=='1' || cpr[10]=='2' || cpr[10]=='3' || cpr[10]=='5' || cpr[10]=='7' ||cpr[10]=='9')
    //if (cpr[10] % 2 == 1)
    {
    printf("\nog du er en Mand" );
    }
    else
    {
    printf("\nog du er en Kvinde" );
    }



    if (fejlcpr == 1)

    {
    printf("\n\n\nFejl i CPR-nummer!" );


    }


    getch();

}
Avatar billede arne_v Ekspert
13. april 2004 - 14:36 #1
Mit forslag:

bool ok;
...
ok = true;
do
{
  // indlæs CPR nummer
  // check om CPR nummer er OK hvis ikke sæt ok = false
}
while(!ok);
Avatar billede vostrikov Nybegynder
13. april 2004 - 14:46 #2
Hmm... Ved ikke lige om det er det jeg leder efter. Skal bare have mit program til at reboote hvis: "CPR-nummer er forkert" meldingen bliver vist.
Avatar billede arne_v Ekspert
13. april 2004 - 14:48 #3
Mener du reboote PC'en ?

(det lyder som en lidt drastisk reaktion på en fejl indtastning)
Avatar billede vostrikov Nybegynder
13. april 2004 - 14:50 #4
hehe... naah. Jeg mener restarte programmet :)
Avatar billede arne_v Ekspert
13. april 2004 - 14:50 #5
Avatar billede arne_v Ekspert
13. april 2004 - 14:51 #6
Jeg tror ikke der er nogen måde at genstarte programmet på.

Men:

exit(1);

vil ihvertfald afslutte programmet.
Avatar billede vostrikov Nybegynder
13. april 2004 - 14:54 #7
function 'exit' should have a prototype <- ?
Avatar billede arne_v Ekspert
13. april 2004 - 14:56 #8
#include <stdlib.h>
Avatar billede vostrikov Nybegynder
13. april 2004 - 14:59 #9
kanon... skal du ikke lige have nogle points :) ?
Avatar billede vostrikov Nybegynder
13. april 2004 - 15:08 #10
Kan ikke give gid points... Har du kun lavet kommentar?
Avatar billede vostrikov Nybegynder
13. april 2004 - 15:09 #11
gid = dig :)
Avatar billede arne_v Ekspert
13. april 2004 - 15:11 #12
svar
Avatar billede vostrikov Nybegynder
13. april 2004 - 15:15 #13
Så... Er alle glade :) ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester