I am very new at coding and taking CS50. I am currently working on the credit problem in week 1. I finished coding but when I ran check 50 my code only seemed to work for some of the card numbers and I can't figure out why the other ones don't run.
This is my code
#include <stdio.h> #include <cs50.h> #include <math.h> int main(void) { // get card number long int n; do { n = get_long_long("Credit Card Number:"); } while (n < 0); // calculate checksum int x = n; int sum1 = 0 int sum2 = 0 int total = 0 int last1; int last2; int d1; int d2; int dbl; do { last1 = x % 10; x = x / 10; sum1 = sum1 + last1; last2 = x % 10; x = x / 10; dbl; = last2 * 2; d1 = dbl % 10; d2 = dbl / 10; sum2 = sum2 + d1 + d2; } while (x > 0); total = sum1 + sum2; if ((total % 10) != 0) { printf("INVALID\n"); return 0; } // check length of card number long int y = n; int count = 0; do { y = y / 10; count++; } while (y > 0); if ((count ! = 13) && (count ! = 15) && (count ! = 16)) { printf("INVALID\n"); return 0; } // check starting digits long int z = n; do { z = z / 10; } while (z > 100) // visa if (z / 10 == 4) { printf("VISA\n"); } // mastercard else if ((z / 10 == 5) && (z % 10 > 0) && (z % 10 < 6)) { printf("MASTERCARD\n"); } // AMEX else if ((z / 10 == 3) && ((z % 10 == 4) || (z % 10 == 7))) { printf("AMEX\n"); } else { printf("INVALID"); } } and these are the error messages I receive when I run check 50
:) credit.c exists :) credit.c compiles :) identifies 378282246310005 as AMEX :( identifies 371449635398431 as AMEX expected "AMEX\n", not "INVALID\n" :( identifies 5555555555554444 as MASTERCARD expected "MASTERCARD\n", not "INVALID\n" :) identifies 5105105105105100 as MASTERCARD :( identifies 4111111111111111 as VISA expected "VISA\n", not "INVALID\n" :( identifies 4012888888881881 as VISA expected "VISA\n", not "INVALID\n" :( identifies 4222222222222 as VISA expected "VISA\n", not "INVALID\n" :) identifies 1234567890 as INVALID :) identifies 369421438430814 as INVALID :) identifies 4062901840 as INVALID :) identifies 5673598276138003 as INVALID :) identifies 4111111111111113 as INVALID :) identifies 4222222222223 as INVALID the frowny faces are the ones that come out incorrect so let me know if anyone knows why they're not coding correctly!