天天看點

c++ primer plus 第七章《程式設計題7.13.10》

/*
 Enter x and y: q e
 Not number, please retry again.
 Enter x and y: 2.5 10.4
 2.5 + 10.4 = 12.9
 2.5 * 10.4 = 26
 Enter x and y: 11.33 45.12
 11.33 + 45.12 = 56.45
 11.33 * 45.12 = 511.21
 Enter x and y: 10.2232 6.43
 10.2232 + 6.43 = 16.6532
 10.2232 * 6.43 = 65.7352
 Enter x and y: 123.123 321.321
 123.123 + 321.321 = 444.444
 123.123 * 321.321 = 39562
 */
#include <iostream>

using namespace std;

double add(double, double);
double mult(double, double);
double calculate(double, double, double (*pf)(double, double));

int main() {
    double x, y;
    const int Size = ;
    int i = ;
    while (i < Size) {
        cout << "Enter x and y: ";
        if(! (cin >> x)) {
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Not number, please retry again.\n";
            continue;
        }
        if (! (cin >> y)) {
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Not number, please retry again.\n";
            continue;
        }
        i++;
        double q = calculate(x, y, add);
        cout << x << " + " << y << " = " << q << "\n";
        q = calculate(x, y, mult);
        cout << x << " * " << y << " = " << q << "\n";
    }
}

double add(double x, double y) {
    return x + y;
}

double mult(double x, double y) {
    return x * y;
}

double calculate(double a, double b, double (*pf)(double a, double b)) {
    return (*pf)(a, b);
}
           
c++

繼續閱讀