//
//  main.cpp
//  TemplateTutorial
//
//  Created by Robert Metcalfe on 17/09/13.
//  Copyright (c) 2013 Robert Metcalfe. All rights reserved.
//

#include <iostream>

template<class T> T modVal(T&, T&);

int main(int argc, const char * argv[])
{
    int inumerator, idenominator;
    std::cout << "Enter (int)numerator " << std::endl;
    std::cin >> inumerator;
    std::cout << "Enter (int)denominator " << std::endl;
    std::cin >> idenominator;
    std::cout << "(int)modVal(" << inumerator << "," << idenominator << ") = " << modVal(inumerator, idenominator) << std::endl;
    double dnumerator, ddenominator;
    std::cout << "Enter (double)numerator " << std::endl;
    std::cin >> dnumerator;
    std::cout << "Enter (double)denominator " << std::endl;
    std::cin >> ddenominator;
    std::cout << "(double)modVal(" << dnumerator << "," << ddenominator << ") = " << modVal(dnumerator, ddenominator) << std::endl;
    return 0;
}

template<class T> T modVal(T& numerator, T& denominator)
{
    if (denominator == 0)
    {
        return 0;
    } else {
        return numerator - denominator * (int)(numerator / denominator);
    }
}




