• Skip to main content
  • Skip to footer

SoftwareProg.com

Software programming learning aide

  • Blog
    • Discussion
  • News
  • CS50’s Introduction to Computer Science by Harvard University on Edx
    • Week 1
    • Week 2
    • Week 3
    • Week 4
    • Week 5

Problem with a user defined function

CS50 threads to aide as a supplementary resource › Forums › CS50’s Introduction to Computer Science by Harvard University on Edx › Week 1 › Problem with a user defined function

  • This topic is empty.
Log In Register Lost Password
Viewing 1 post (of 1 total)
  • Author
    Posts
  • August 29, 2022 at 4:49 am #520
    admin
    Keymaster

      Here is the full code:


      Copy Code
      Copied
      Use a different Browser

      
      
      #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]

    • Author
      Posts
    Log In Register Lost Password
    Viewing 1 post (of 1 total)
    • You must be logged in to reply to this topic.
    Log In

    Log in / Register

    Initiative by Digital Splendid OPC Pvt. Ltd.