CS50x threads to aide as a supplementary resource › Forums › CS50’s Introduction to Computer Science by Harvard University on Edx › Week 1: [C] – Data Types, Operators, Conditional Statements, Loops, and Command Line › Problem with a user defined function
- This topic is empty.
Viewing 1 post (of 1 total)
-
AuthorPosts
-
August 29, 2022 at 4:49 am #520
Here is the full code:
#include <stdio.h> #include <cs50.h> long enterccno (void);//long type as 14-digit credit card will not fit into the memory as int type int countdigit (long y); int checkifAmex (long y); int main(void) { long y = enterccno(); printf("credit card no. entered is %ld",y); long cc = countdigit(y); printf("entered credit card has this number of digit %ld",cc); if (cc == 15) { int z = checkifAmex(cc); if (z == 1) { printf("This is Amex"); return 0; } } //if (cc == 16) //{ //checkifMastercard //} //if (cc == 13 or cc == 16) //{ //checkifVisa //} else { return 0; } } long enterccno (void) //It will take void as argument as the function will not initially take any particular long value as input to begin with. { long x = get_long("enter creditcardno");//get_long function by cs50.h leveraged to accept input of creditcard no. from user. return x;//stored x value or entered creditcardno transferred inside the main function when entercccno function called. } int countdigit (long y) { long x = y; int c = 0; do { x = x/10; c++; } while (x > 0); return c; } int checkifAmex (long y) { long x = y; if (x/10000000000000 == 34) { return 1; } else { return 0; } }
If I enter as input 340000000000000, this divided by 10000000000000 = 34.
So, I anticipate checkifAmex function to return 1 and so print “This is Amex”.
Instead getting this output, which is common to all entered credit card numbers:
Help appreciated.
Reply
https://edstem.org/us/courses/176/discussion/1706118[learn_press_profile]
-
AuthorPosts
Viewing 1 post (of 1 total)
- You must be logged in to reply to this topic.