We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • Hackerrank Home
  • Prepare
    NEW
  • Certify
  • Compete
  • Career Fair
  • Hiring developers?
  1. Class vs. Instance
  2. Discussions

Class vs. Instance

Problem
Submissions
Leaderboard
Discussions

    You are viewing a single comment's thread. Return to all comments →

  • mrityunjay38
    3 years ago+ 2 comments

    What is wrong with my code?

    //mrityunjay38@gmail.com
    
    #include<bits/stdc++.h>
    using namespace std;
    
    class Person{
    public:
        int age;
        
        //constructor
        Person(int initialAge){
            bool validAge = check(initialAge);
            validAge==true?age=initialAge:age=0,cout<<"Age is not valid, setting age to 0.\n";
        };
        
        //check age validity
        bool check(int age){
            
            if(age<0)
                return false;
            
            return true;
        }
        
        void amIOld(){
            if(age<13){
                cout<<"You are young.\n";
                return;
            }
            if(age>=13 and age<18){
                cout<<"You are a teenager.\n";
                return;
            }
            
            cout<<"You are old.\n";
        }
        
        void yearPasses(){
            age++;
        }
        
    };
    int main(){
         
        int t;
        int age;
        cin >> t;
        for(int i=0; i < t; i++) {
            cin >> age;
            Person p(age);
            p.amIOld();
            for(int j=0; j < 3; j++) {
                p.yearPasses();
            }
            p.amIOld();
            
            cout << '\n';
        }
        
        return 0;
    }
    

    Technically, it is giving the right answer but the expected output doesn't repeat this -> "Age is not valid, setting age to 0." Thought it should get printed on each test case run but in the questions the expected output skips this lines after 1st run. Why?

    0|
    Permalink
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy
  • Request a Feature