该部分跟C语言大同小异,值得一提的是,C++不允许main()自己调用自己,而在某些C的编译器可以实现。
1.
/*
编写一个程序,不断要求用户输入两个数,直到其中的一个为0.
对于每两个数,程序将使用一个函数来计算它们的调和平均数,
并将结果返回给main(),而后者将报告结果。调和平均数指的是倒数平均值的倒数,
计算公式如下:调和平均数=2.0*x*y/(x+y)
分析:主要考虑函数的调用 与值的传递
*/
#include <iostream>
using namespace std;
double avg(int a,int b);
int main(){
int a,b;
cout<<"Please input two number:"<<endl;
cin>>a>>b;
while(a!=0&&b!=0){
cout<<"avg is : "<<avg(a,b)<<endl;
cout<<"Please input two number:"<<endl;
cin>>a>>b;
}
cout<<"Thanks.";
}
double avg(int a,int b){
return (2.0*a*b)/(a+b);
}
2.
/*
阶乘计算 循环输入
分析:主要考虑函数的递归
题中没有声明结束条件 默认为输入负数时结束
*/
#include <iostream>
using namespace std;
int fac(int);
int main(){
int a;
cout<<"Please input one number:"<<endl;
cin>>a;
while(a>=0){
cout<<"fac is : "<<fac(a)<<endl;
cout<<"Please input two number:"<<endl;
cin>>a;
}
cout<<"Thanks.";
}
int fac(int n){
//利用if区别出0与1两个特殊的阶乘
long long val=0;
if(n>=2){
val=n*fac(n-1);
}
else{
val=1;
}
return val;
}