C/C++

Помогите составить задачу на программе С++

#include < iostream >
using namespace std;
double f(int m)
{
    double a, b, h, r;
    if (m == 1)
    {
        cout << "Введите a и b: ";
        cin >> a >> b;
        return a * b;
    }
    else if (m == 2)
    {
        cout << "Введите a и h: ";
        cin >> a >> h;
        return 0.5 * a * h;
    }
    else if (m == 3)
    {
        cout << "Введите a и b: ";
        cin >> a >> b;
        return (a + b) * 0.5;
    }
    else if (m == 4)
    {
        cout << "Введите r: ";
        cin >> r;
        return 3.14 * r * r;
    }
    return 0;
}

int main()
{
    int m;
    cout << "Введите m: ";
    cin >> m;
    cout << f(m) << endl;
}
Саят Нурканов
Саят Нурканов
73 465
Лучший ответ
#include <iostream>
#include <iomanip>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
constexpr auto pi = 3.14159265358979323;
constexpr auto two = 2.0;
auto s = 0.0;
auto a = real("a: ");
auto b = real("b: ");
auto h = real("h: ");
auto r = real("R: ");
puts("");
while (true) {
auto good = true;
switch (integer("m: ")) {
case 1: s = a * b; break;
case 2: s = a * h / two; break;
case 3: s = (a + b) / two; break;
case 4: s = pi * r * r; break;
default: good = false;
}
if (good) cout << "s: " << s << '\n';
else puts("Error!");
}
system("pause > nul");
}