当前位置:   article > 正文

C++实验2——函数的应用_c++使用系统函数pow(x,y)计算x^y(x的y次幂)的值,注意包含头文件cmath

c++使用系统函数pow(x,y)计算x^y(x的y次幂)的值,注意包含头文件cmath

大一时写的,很菜

目录

实验目的:

实验内容:

参考代码:


实验目的:

  1. 掌握函数的定义和调用方法。
  2. 练习重载函数的使用。
  3. 练习函数模板的使用。
  4. 练习使用系统函数。
  5. 学习使用VC++的debug调试功能,使用step into追踪到函数内部。

实验内容:

  1. 编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9。
  2. 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程。
  3. 使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。
  4. 使用重载函数模板重新实现上小题中的函数Max1。
  5. 编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。

参考代码:

  1. //实验2.1 编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9
  2. #include<iostream>
  3. using namespace std;
  4. double fc(double F) {
  5. double C;
  6. C = (F - 32.0) * 5.0/ 9.0;//注意double类型要加.0,本题中不加也可以得到正确结果(因为F是double类型的)
  7. return C;
  8. }
  9. int main() {
  10. double f;
  11. cout << "请输入华氏温度" << endl;
  12. cin >> f;
  13. cout << "摄氏度为:" << fc(f) << endl;
  14. return 0;
  15. }
  1. //实验2.2 编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
  2. #include<iostream>
  3. using namespace std;
  4. int Max1(int a, int b) {
  5. cout << "调用两个整数比较大小的Max1" << endl;
  6. return max(a, b);
  7. }
  8. int Max1(int a, int b, int c) {
  9. cout << "调用三个整数比较大小的Max1" << endl;
  10. return max(max(a, b), c);
  11. }
  12. double Max1(double a, double b) {
  13. cout << "调用两个双精度数比较大小的Max1" << endl;
  14. return max(a, b);
  15. }
  16. double Max1(double a, double b, double c) {
  17. cout << "调用三个双精度数比较大小的Max1" << endl;
  18. return max(max(a, b), c);
  19. }
  20. int main() {
  21. cout << Max1(1, 2) << endl;
  22. cout << Max1(1, 2, 3) << endl;
  23. cout << Max1(1.0, 2.0) << endl;
  24. cout << Max1(1.0, 2.0, 3.0) << endl;
  25. return 0;
  26. }
  27. //只有将函数表达式输出才能调用函数内的返回值
  1. //Max1.h
  2. #pragma once//#pragma once有什么作用?为什么加不加都可以实现?
  3. #include<iostream>
  4. using namespace std;
  5. int Max1(int a, int b) {
  6. cout << "调用两个整数比较大小的Max1" << endl;
  7. return max(a, b);
  8. }
  9. int Max1(int a, int b, int c) {
  10. cout << "调用三个整数比较大小的Max1" << endl;
  11. return max(max(a, b), c);
  12. }
  13. double Max1(double a, double b) {
  14. cout << "调用两个双精度数比较大小的Max1" << endl;
  15. return max(a, b);
  16. }
  17. double Max1(double a, double b, double c) {
  18. cout << "调用三个双精度数比较大小的Max1" << endl;
  19. return max(max(a, b), c);
  20. }
  1. //实验2.3 使用重载函数模板重新实现实验2.2中的函数Max1
  2. #include<iostream>
  3. #include"Max1.h"
  4. using namespace std;
  5. int main() {
  6. cout << Max1(1, 2) << endl;
  7. cout << Max1(1, 2, 3) << endl;
  8. cout << Max1(1.0, 2.0) << endl;
  9. cout << Max1(1.0, 2.0, 3.0) << endl;
  10. return 0;
  11. }
  1. //实验2.4 使用系统函数pow(x,y)计算x^y的值,注意包含头文件math.h。
  2. /*pow函数的作用是求幂。
  3. 数学公式:计算x的y次幂;
  4. 返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果;
  5. 返回类型:double型。*/
  6. #include<iostream>
  7. #include<math.h>//cmath与math.h有何区别?
  8. using namespace std;
  9. int main() {
  10. double x, y;//注意参数类型应与返回值一致
  11. cout << "输入底数x和指数y" << endl;
  12. cin >> x >> y;
  13. cout << "x^y=" << pow(x, y) << endl;
  14. return 0;//听说csp认证不写return 0会记0分?
  15. }
  1. //实验2.5 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程。
  2. //#include<iostream>
  3. //using namespace std;
  4. //int f(int n) {
  5. // if (n == 1)
  6. // f(n) = 1;
  7. // else if (n == 2)
  8. // f(n) = 1;
  9. // else
  10. // f(n) = f(n - 1) + f(n - 2);
  11. // return f(n);
  12. //}
  13. //int main() {
  14. // int n;
  15. // cout << "请输入一个大于等于1的整数" << endl;
  16. // cin >> n;
  17. // cout << "f(n)=" << f(n) << endl;
  18. // return 0;
  19. //}//会报错
  20. #include<iostream>
  21. using namespace std;
  22. int f(int n) {
  23. int F;
  24. if (n == 1)
  25. F = 1;
  26. else if (n == 2)
  27. F = 1;
  28. else
  29. F = f(n - 1) + f(n - 2);
  30. return F;
  31. }
  32. int main() {
  33. int n;
  34. cout << "请输入一个大于等于1的整数" << endl;
  35. cin >> n;
  36. cout << "F=" << f(n) << endl;
  37. return 0;
  38. }
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/656823
推荐阅读
  

闽ICP备14008679号