Advertisement
danyfebrero

(CS50) Credit

Sep 23rd, 2019
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <cs50.h>
  3.  
  4. int main(void)
  5. {
  6.     long card, cardcheck;
  7.     int cardlen = 0, even = 0, odd = 0, sumeo = 0;
  8.    
  9.     do
  10.     {
  11.         card = get_long("Introduce the card: ");
  12.     }
  13.     while (card < 0);
  14.    
  15.     for (long i = card; i != 0; i = i / 10, cardlen++); // looking card lengh
  16.    
  17.     if (cardlen < 13 || cardlen == 14 || cardlen > 16) // is a card?
  18.     {
  19.         printf("INVALID\n");
  20.         return 0; //if not a card close app
  21.     }
  22.     //checksum
  23.     cardcheck = card;
  24.     while (cardcheck  > 0)
  25.     {
  26.         int n1 = cardcheck % 10;
  27.         even += n1;
  28.         cardcheck /= 10;
  29.        
  30.         int n2 = cardcheck % 10;
  31.         n2 *= 2;
  32.         if (n2 > 9)
  33.         {
  34.             int a = n2 % 10;
  35.             int b = n2 / 10;
  36.             n2 = a + b;
  37.         }
  38.         odd += n2;
  39.         cardcheck /= 10;  
  40.     }
  41.    
  42.     sumeo = even + odd;
  43.     if (sumeo % 10 == 0)
  44.     {
  45.         if ((card >= 340000000000000 && card < 350000000000000) || (card >= 370000000000000 && card < 380000000000000))
  46.         {
  47.             printf("AMEX\n");
  48.         }
  49.         else if (card >= 5100000000000000 && card < 5600000000000000)
  50.         {
  51.             printf("MASTERCARD\n");
  52.         }
  53.         else if ((card >= 4000000000000000 && card < 5000000000000000) ||(card >=  4000000000000 && card < 5000000000000))
  54.         {
  55.             printf("VISA\n");
  56.         }
  57.         else
  58.         {
  59.             printf("INVALID\n");
  60.         }    
  61.     }
  62.     else
  63.     {
  64.         printf("INVALID\n");
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement