Walidacja karty płatniczej w c++

0
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{  
    string numerKarty;
    int sum(0), 
    a(0), 
    b(0), 
    c(0), 
    d(0);
 
    cout << "Walidacja numeru karty platniczej " << endl;
 
    do
    {
        cout << endl << "Wprowadz numer karty lub nacisnij w by wyjsc ";
        cin >> numerKarty;
        if (numerKarty == "w") break;
       
        for (int pozycjaKarty=numerKarty.length(); pozycjaKarty>0; pozycjaKarty--)
        {
            if (pozycjaKarty%2 == 0)
            {  
                d=(int)numerKarty[pozycjaKarty-1]-'0';
                b=b+d;
            }
            else
            { 
                d=((int)numerKarty[pozycjaKarty-1]-'0')*2;
                c=c%10+c/10;
                a=a + c;
            }
        }
 
        sum=b+a;
        cout << endl <<"Wprowadzony numer karty bankowej jest ";
        if (sum%10==0)
            cout << "poprawny" << endl;
        else
            cout << "niepoprawny" << endl;
 
    }while (numerKarty != "n");
 
    return 0;

Pyanie wygląda następująco, jakie wartości powinienem zmienić dla kart 16 cyfrowych, możecie spojrzeć na swoje karty bankowe i tam widnieją 16 cyfr a nie kilka mniej. Proszę o pomoc :)

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