大一时写的,很菜
目录
实验目的:
- 掌握函数的定义和调用方法。
- 练习重载函数的使用。
- 练习函数模板的使用。
- 练习使用系统函数。
- 学习使用VC++的debug调试功能,使用step into追踪到函数内部。
实验内容:
- 编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9。
- 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程。
- 使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。
- 使用重载函数模板重新实现上小题中的函数Max1。
- 编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
参考代码:
//实验2.1 编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9。
#include<iostream>
using namespace std;
double fc(double F) {
double C;
C = (F - 32.0) * 5.0/ 9.0;//注意double类型要加.0,本题中不加也可以得到正确结果(因为F是double类型的)
return C;
}
int main() {
double f;
cout << "请输入华氏温度" << endl;
cin >> f;
cout << "摄氏度为:" << fc(f) << endl;
return 0;
}
//实验2.2 编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
#include<iostream>
using namespace std;
int Max1(int a, int b) {
cout << "调用两个整数比较大小的Max1" << endl;
return max(a, b);
}
int Max1(int a, int b, int c) {
cout << "调用三个整数比较大小的Max1" << endl;
return max(max(a, b), c);
}
double Max1(double a, double b) {
cout << "调用两个双精度数比较大小的Max1" << endl;
return max(a, b);
}
double Max1(double a, double b, double c) {
cout << "调用三个双精度数比较大小的Max1" << endl;
return max(max(a, b), c);
}
int main() {
cout << Max1(1, 2) << endl;
cout << Max1(1, 2, 3) << endl;
cout << Max1(1.0, 2.0) << endl;
cout << Max1(1.0, 2.0, 3.0) << endl;
return 0;
}
//只有将函数表达式输出才能调用函数内的返回值
//Max1.h
#pragma once//#pragma once有什么作用?为什么加不加都可以实现?
#include<iostream>
using namespace std;
int Max1(int a, int b) {
cout << "调用两个整数比较大小的Max1" << endl;
return max(a, b);
}
int Max1(int a, int b, int c) {
cout << "调用三个整数比较大小的Max1" << endl;
return max(max(a, b), c);
}
double Max1(double a, double b) {
cout << "调用两个双精度数比较大小的Max1" << endl;
return max(a, b);
}
double Max1(double a, double b, double c) {
cout << "调用三个双精度数比较大小的Max1" << endl;
return max(max(a, b), c);
}
//实验2.3 使用重载函数模板重新实现实验2.2中的函数Max1。
#include<iostream>
#include"Max1.h"
using namespace std;
int main() {
cout << Max1(1, 2) << endl;
cout << Max1(1, 2, 3) << endl;
cout << Max1(1.0, 2.0) << endl;
cout << Max1(1.0, 2.0, 3.0) << endl;
return 0;
}
//实验2.4 使用系统函数pow(x,y)计算x^y的值,注意包含头文件math.h。
/*pow函数的作用是求幂。
数学公式:计算x的y次幂;
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果;
返回类型:double型。*/
#include<iostream>
#include<math.h>//cmath与math.h有何区别?
using namespace std;
int main() {
double x, y;//注意参数类型应与返回值一致
cout << "输入底数x和指数y" << endl;
cin >> x >> y;
cout << "x^y=" << pow(x, y) << endl;
return 0;//听说csp认证不写return 0会记0分?
}
//实验2.5 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程。
//#include<iostream>
//using namespace std;
//int f(int n) {
// if (n == 1)
// f(n) = 1;
// else if (n == 2)
// f(n) = 1;
// else
// f(n) = f(n - 1) + f(n - 2);
// return f(n);
//}
//int main() {
// int n;
// cout << "请输入一个大于等于1的整数" << endl;
// cin >> n;
// cout << "f(n)=" << f(n) << endl;
// return 0;
//}//会报错
#include<iostream>
using namespace std;
int f(int n) {
int F;
if (n == 1)
F = 1;
else if (n == 2)
F = 1;
else
F = f(n - 1) + f(n - 2);
return F;
}
int main() {
int n;
cout << "请输入一个大于等于1的整数" << endl;
cin >> n;
cout << "F=" << f(n) << endl;
return 0;
}