主题:关于递归的函数调用,不知道哪出错了
梦梦学编程
[专家分:10] 发布于 2011-03-11 23:15:00
int Max(int str[],int n);
int str1[4];
int max;
printf("please enter 4 integar numbers:\n");
max=Max(str1,4);
printf("max=%d\n",max);
}
int Max(int str[],int n)
{ int x;
x=Max(str,n-1);
if(str[n-1]>=x)
return str[n-1];
else if(str[n-1]<x)
return x;
}
回复列表 (共6个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-03-11 23:34:00
代码就不细看了,先说说个人对于递归的看法:
首先得清楚怎样递归才能求得所需求的,其次得控制好递归的条件,这个得严格控制,否则,错在哪你都不知道……
lz既然出错了,得自己多想想各个环节啊……自己解决了进步会更大啊、
板凳
intron [专家分:50] 发布于 2011-03-12 06:16:00
怎么大括号有3个。第一个后括号是和谁配对的?
而且好像缺了cin。
3 楼
梦梦学编程 [专家分:10] 发布于 2011-03-12 21:08:00
#include <stdio.h>
void main()
{
int Max(int str[],int n);
int str1[4];
int max;
printf("please enter 4 integar numbers:\n");
scanf("%d,%d,%d,%d",str1[0],str1[1],str1[2],str1[3]);
max=Max(str1,4);
printf("max=%d\n",max);
}
int Max(int str[],int n)
{ int x;
x=Max(str,n-1);
if(str[n-1]>=x)
return str[n-1];
else if(str[n-1]<x)
return x;
}加了个输入,还是不行
4 楼
hereforc [专家分:210] 发布于 2011-03-14 16:49:00
这个递归有点晕 你函数里面控制条件也没有啊 根本递归不了 还有递归本来就是很难理解的 像这种求最大值的一般就不要去用什么递归了
5 楼
梦梦学编程 [专家分:10] 发布于 2011-03-14 22:46:00
额,做出来了;
呵呵,感觉你经常教我呢,谢谢!
#include <stdio.h>
void main()
{
int Max(int str[],int n);
int str1[4];
int max,i;
printf("please enter 4 integar numbers:\n");
for(i=0;i<4;i++)
scanf("%d",&str1[i]);
max=Max(str1,4);
printf("max=%d\n",max);
}
int Max(int str[],int n)
{
int x;
if (n-1 == 0)
{
return(str[0]);
}
x=Max(str,n-1);
if(str[n-1]>=x)
return (str[n-1]);
else if(str[n-1]<x)
return (x);
}[em12][em12][em12][em12][em12][em12][em12][em12]
6 楼
hereforc [专家分:210] 发布于 2011-03-14 23:53:00
呵呵 我也是在学习的 一起进步么
我来回复