C++递归调用的问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 03:07:15
#include<iostream.h>
void func(double a,double *b,double *c);
void main()
{
double a,b,c;
func(a,&b,&c);

}
void func(double a,double *b,double *c)
{
cout<<"请输入一个值作为正方形变长和圆的半径:\n";
cin>>a;
if(a>20000)
{
cout<<"输入的数字不在取值范围内,请重新输入!\n";
void func(double a,double *b,double *c);
}
else
{
*b=a*a;*c=3.14*a*a;
cout<<"正方形的面积为:"<<*b<<endl<<"圆的面积为:"<<*c<<endl;
}
}
就是if语句中想用递归调用 该怎么用 我这样调用错在哪里

#include<iostream.h>
void func(double a,double *b,double *c);
void main()
{
double a,b,c;
func(a,&b,&c);
}
void func(double a,double *b,double *c)
{
cout<<"请输入一个值作为正方形变长和圆的半径:\n";
cin>>a;
if(a>20000)
{
cout<<"输入的数字不在取值范围内,请重新输入!\n";
func(a,b,c);
}
else
{
*b=a*a;*c=3.14*a*a;
cout<<"正方形的面积为:"<<*b<<endl<<"圆的面积为:"<<*c<<endl;
}
}

没必要用递归。
汉诺塔,二叉树,等需要用递归的地方再用吧。
递归的缺点是 花费堆栈资源较多。

void func(double a,double *b,double *c)
{
while(1)
{
cout<<"请输入一个值作为正方形变长和圆的半径:\n";
cin>>a;
if(a>20000)
{
cout<<"输入的数字不在取值范围内,请重新输入!\n";
}else
{
break;
}
}
*b=a*a;*c=3.14*a*a;
cout