Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cs50.h>
- #include <stdio.h>
- #include <math.h>
- int main(void)
- {
- long long card;
- // variable credit card number
- long long cc_number;
- // variable card number to be used for counter later on
- long long c;
- long long amex = 10 ^ 15;
- long long mastercard = 10 ^ 16;
- long long visa13 = 10 ^ 13;
- long long visa16 = 10 ^ 16;
- int counter;
- int sum1 = 0;
- int sum2 = 0;
- do
- {
- printf ("credit card number:");
- card = get_long_long ();
- }
- while (card < 0 );
- //hey! come and declare variables here later if code dosent work
- // code for sum
- while (cc_number > 0)
- {
- // a represents every other digit multiplied by 2
- int a = ( (cc_number % 100) / 10) * 2;
- // b represents all other digits
- int b = ( (cc_number % 100) / 10) * 2;
- if (a > 9)
- {
- sum1 = sum1 + (a % 10) + 1;
- }
- else
- {
- // sum1 stores the value of the sum of all as'
- sum1 = sum1 + a;
- }
- // sum2 stores the sum of all other digits
- sum2 = sum2 + b;
- cc_number = cc_number / 100;
- }
- // counts digits
- for (counter = 0; c > 0; counter++)
- {
- c = c / 10;
- }
- // adds the previous sums in this code,and must end with 0 to be valid
- int sum = sum1 + sum2;
- // prints visa using the following conditions
- if ( (counter==16 && (sum %10) == 0) && (card / visa16) == 4 ) || ( (counter == 13 && (sum % 10) ==0 && (card / visa13) == 4) )
- {
- printf ("VISA \n");
- }
- // prints amex using the following conditions
- else if (counter == 15 && (sum % 10) == 0 && (card / (amex) ==34 || card / (amex) == 37)
- {
- printf ("AMEX \n");
- }
- // prints mastercard using the following conditions
- else if (counter == 16 && (sum % 10) == 0 && (card / mastercard > 50 && card / mastercard < 56) )
- {
- printf ("MASTERCARD \n");
- }
- // prints invalid if none of the above conditions is met
- else
- {
- printf ("INVALID \n")
- }
- }
Add Comment
Please, Sign In to add comment