Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <cs50.h>
- int main(void)
- {
- long card, cardcheck;
- int cardlen = 0, even = 0, odd = 0, sumeo = 0;
- do
- {
- card = get_long("Introduce the card: ");
- }
- while (card < 0);
- for (long i = card; i != 0; i = i / 10, cardlen++); // looking card lengh
- if (cardlen < 13 || cardlen == 14 || cardlen > 16) // is a card?
- {
- printf("INVALID\n");
- return 0; //if not a card close app
- }
- //checksum
- cardcheck = card;
- while (cardcheck > 0)
- {
- int n1 = cardcheck % 10;
- even += n1;
- cardcheck /= 10;
- int n2 = cardcheck % 10;
- n2 *= 2;
- if (n2 > 9)
- {
- int a = n2 % 10;
- int b = n2 / 10;
- n2 = a + b;
- }
- odd += n2;
- cardcheck /= 10;
- }
- sumeo = even + odd;
- if (sumeo % 10 == 0)
- {
- if ((card >= 340000000000000 && card < 350000000000000) || (card >= 370000000000000 && card < 380000000000000))
- {
- printf("AMEX\n");
- }
- else if (card >= 5100000000000000 && card < 5600000000000000)
- {
- printf("MASTERCARD\n");
- }
- else if ((card >= 4000000000000000 && card < 5000000000000000) ||(card >= 4000000000000 && card < 5000000000000))
- {
- printf("VISA\n");
- }
- else
- {
- printf("INVALID\n");
- }
- }
- else
- {
- printf("INVALID\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement