主题:关于递归的函数调用,不知道哪出错了
			 梦梦学编程
				 [专家分:10]  发布于 2011-03-11 23:15:00
 梦梦学编程
				 [专家分: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
fragileeye [专家分:1990]  发布于 2011-03-11 23:34:00				
				代码就不细看了,先说说个人对于递归的看法:
首先得清楚怎样递归才能求得所需求的,其次得控制好递归的条件,这个得严格控制,否则,错在哪你都不知道……
lz既然出错了,得自己多想想各个环节啊……自己解决了进步会更大啊、
							 
						
				板凳
				
					 intron [专家分:50]  发布于 2011-03-12 06:16:00
intron [专家分:50]  发布于 2011-03-12 06:16:00				
				怎么大括号有3个。第一个后括号是和谁配对的?
而且好像缺了cin。
							 
						
				3 楼
				
					 梦梦学编程 [专家分:10]  发布于 2011-03-12 21:08:00
梦梦学编程 [专家分: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
hereforc [专家分:210]  发布于 2011-03-14 16:49:00				
				这个递归有点晕 你函数里面控制条件也没有啊 根本递归不了 还有递归本来就是很难理解的 像这种求最大值的一般就不要去用什么递归了
							 
						
				5 楼
				
					 梦梦学编程 [专家分:10]  发布于 2011-03-14 22:46:00
梦梦学编程 [专家分: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
hereforc [专家分:210]  发布于 2011-03-14 23:53:00				
				呵呵 我也是在学习的  一起进步么
							 
									
			
我来回复