3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。
#includeusing namespace std; double CF(double F) //华氏温度转换为摄氏温度 { return 1.0*5/9*(F-32); } int main() { double F; cout<<"请输入华氏温度:"; cin>>F; cout< 3-9 编写函数判别一个数是否是一个质数,在主程序中实现输入输出。
#include#include using namespace std; bool isprime(int x) { if(x<=1) return false; for(int i=2;i<=sqrt(x);i++){ if(x%i==0) return false; } return true; } int main() { int x; cout<<"请输入一个数:"; cin>>x; if(isprime(x)) cout< 3-10 编写函数求两个整数的最大公约数和最小公倍数。
#include#include using namespace std; int gcd(int a,int b) //求最大公约数 { int t; if(a>x>>y; int g=gcd(x,y),l=x*y/g; cout< 3-13 用递归的方法编写函数求Fibonacci级数,公式为Fn = Fn-1+Fn-2(N>2),F1 = F2 = 1,观察递归调用的过程。
#includeusing namespace std; int fib(int n) { if(n==1||n==2) return 1; else return fib(n-1)+fib(n-2); } int main() { int n; cout<<"请输入一个大于2的整数:"; cin>>n; cout< 3-14 用递归的方法编写函数求n阶勒让德多项式的值,在主函数中实现输入输出。递归公式为
#includeusing namespace std; float p(int n,int x) { if(n==0) return 1; else if(n==1) return x; else return ((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n; } int main() { int n,x; cout<<"请输入正整数n、x:"; cin>>n>>x; cout< 3-15 编写递归函数getPower计算x的平方,在同一个程序中针对整型和实型实现两个重载的函数:
int getPower(int x,int y); //整型形式,当y<0时,返回0
double getPower(double x,int y); //实型形式
在主程序中实现输入输出,分别输入一个整数a和一个实数b作为底数,在输入一个整数m作为指数,输出a的m次方和b的m次方。另外请读者思考,如果在调用getPower函数计算a的m次方时希望得到一个实型的结果(实型结果表示范围更大,而且可以准确表示m<0时的结果),该如何调用?
#includeusing namespace std; int getPower(int x,int y) { if(y==0) return 1; else if(y==1) return x; else if(y<0) return 0; else return x*getPower(x,y-1); } double getPower(double x,int y) { if(y==0) return 1; else if(y==1) return x; else if(y<0) return 1.0/x*getPower(x,y+1); //表示负次幂时出现的结果 else return x*getPower(x,y-1); } int main() { int a,m; double b; cout<<"请输入一个整数和一个实数作为底数:"; cin>>a>>b; cout<<"请输入一个整数作为指数:"; cin>>m; cout<<"a^m="< 3-17 編写一個可以计算梯形面积的重载函数,格式为trapezoid(upper,base,height),upper、base与height可同为int或double,传回值的型态皆为double。(梯形面积=(upper+base)*height/2)。
#includeusing namespace std; double trapezoid(int upper,int base,int height) { return (double)(upper+base)*height/2; //转换为double型数据 } double trapezoid(double upper,double base,double height) { return (upper+base)*height/2; } int main() { int x,y,z; double u,b,h; cout<<"请输入整型的上底、下底、高:"; cin>>x>>y>>z; cout<<"该梯形面积为:"< >u>>b>>h; cout<<"该梯形面积为:"< 注:第一个trapezoid函数的形参都为int整数型,计算出的梯形面积也会保持int型,故要进行一下类型转换,转为double型,从而符合该函数的返回类型。
本专栏为本人大二C++课程的习题作业和一些学习经验的分享,供大家参考学习。如有侵权请立即与我联系,我将及时处理。
参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊、C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊(学生用书)
编译环境:Visual Studio 2019、Dev-C++



