Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cs50.h>
- #include <stdio.h>
- int main(void)
- {
- // Get the number
- long long int number = get_long_long("Number:");
- // Determine it's length
- long long int a = number;
- int counter = 0;
- while (a > 0)
- {
- a /= 10;
- counter++;
- }
- // Turn it into an array
- int arr[counter], c = counter - 1;
- while (c >= 0)
- {
- arr[c] = number % 10;
- number /= 10;
- c--;
- }
- // Check if it's a valid credit card number
- int sum = 0;
- for (int i = counter - 2; i >= 0; i -= 2)
- {
- if (arr[i] * 2 / 10.0 > 1)
- {
- printf("%i\n", arr[i] * 2 / 10);
- printf("%i\n", arr[i] * 2 % 10);
- sum += arr[i] * 2 / 10;
- sum += arr[i] * 2 % 10;
- }
- else
- {
- sum += arr[i] * 2;
- }
- }
- for (int j = counter - 1; j >= 0; j -= 2)
- {
- sum += arr[j];
- }
- printf("%i\n", sum);
- if (sum % 10 != 0)
- {
- printf("INVALID\n");
- }
- // Determine it's type
- else
- {
- if (arr[0] == 3 && (arr[1] == 4 || arr[1] == 7))
- {
- printf("AMEX\n");
- }
- else if (arr[0] == 5 && (arr[1] == 1 || arr[1] == 2 || arr[1] == 3 || arr[1] == 4 || arr[1] == 5))
- {
- printf("MASTERCARD\n");
- }
- else
- {
- printf("VISA\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement