diff options
Diffstat (limited to 'week07/ex3.cpp')
| -rw-r--r-- | week07/ex3.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/week07/ex3.cpp b/week07/ex3.cpp new file mode 100644 index 0000000..a616dc3 --- /dev/null +++ b/week07/ex3.cpp @@ -0,0 +1,36 @@ +#include <iostream> + +double abs(double val) { + return (val > 0) ? val : -val; +} + +double square(double val) { + return val * val; +} + +double afterFloatingPoint(double val) { + return val - (int)val; +} + +double beforeFloatingPoint(double val) { + return (int)val; +} + +int main() { + double (*useFunc)(double); + char buf; + std::cin >> buf; + switch(buf) { + case 'a': useFunc = &abs; break; + case 's': useFunc = □ break; + case 'h': useFunc = &afterFloatingPoint; break; + case 'f': useFunc = &beforeFloatingPoint; break; + } + + for (int i = 0; i < 5; i++) { + double temp; + std::cin >> temp; + std::cout << useFunc(temp) << " "; + } + std::cout << std::endl; +} |
