Witam. Ma ktoś jakiś pomysł jak stworzyć ową funkcję?. Na pewno chara trzeba zamienić na zmienną liczbową, czy to będzie "long long int"?? Jak pomnożyć przez 2 co drugą liczbę? Może przekształcić tego chara jakoś w tablicę i mnożyć co drugi indeks? Jeśli tak, to jak by to zrobić?? Z góry dziękuję za pomoc.
#include <stdio.h>
//<tutaj wstawić definicje potrzebnych funkcji>
int main()
{
char nrkarty[17];
int poprawny;
printf("Podaj numer karty płatniczej:");
gets(nrkarty);
poprawny=czypoprawny(nrkarty);
if (poprawny==0)
{
printf ("Podany numer karty jest niepoprawny!!!\n");
return 1;
}
else printf ("Podany numer karty jest poprawny!!!\n");
return 0;
}
Sprawdzenie numeru karty płatniczej - algorytm:
- Obliczenia rozpoczynamy od liczby kontrolnej, która jest najbardziej na prawo i przesuwając się w lewo podwajamy co drugą cyfrę.
- Jeśli w wyniku podwojenia otrzymamy liczbę dwucyfrową, dodajemy do siebie cyfry otrzymując liczbę jednocyfrową np. 14 zapisujemy jako 5 (1+4)
- Dodajemy do siebie wszystkie cyfry, podwojone i niepodwojone.
- Jeśli suma mod 10 równa jest 0, numer jest prawidłowy.