c语言中,任何用递归编写的函数都可以用循环代替,那任何用循环编写的函数可以用递归代替吗?

 我来答
百度网友a932d63
2012-06-18 · TA获得超过245个赞
知道小有建树答主
回答量:70
采纳率:0%
帮助的人:76.4万
展开全部
不行:用循环编写的函数可以用递归代替是因为循环体内的数之间有一定的规律,如:
求n!用递归为
long fac(int n)
{ if(n==0)
return 1;
else
return n*fac(n-1);
}
在循环中每个相邻的数之间都必须有一定内部规律,即数与数之间相差一,如:
int i,s=1;
for(i=1;i<=n;n++)
{
s*=i;
}
但是举个最简单的例子:
定义一个一维数组输入50个学生的考试成绩,统计不及格的人数;
用循环为:
int i,j,a[50];
for(i=o;i<50;i++)
{
scanf("%d",&a[i]);
}
for(j=0,j<50;j++)
{
if(a[j]<60)
k++:
}
printf("%d",k);
但是用递归无法实现,那是因为这些数与数之间没有让任何内在联系。
loveyaqin1990
2012-06-17 · 超过17用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:53.9万
展开全部
显然不是的啊!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式