回 帖 发 新 帖 刷新版面

主题:关于递归的函数调用,不知道哪出错了

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个回复)

沙发

代码就不细看了,先说说个人对于递归的看法:
首先得清楚怎样递归才能求得所需求的,其次得控制好递归的条件,这个得严格控制,否则,错在哪你都不知道……
lz既然出错了,得自己多想想各个环节啊……自己解决了进步会更大啊、

板凳

怎么大括号有3个。第一个后括号是和谁配对的?
而且好像缺了cin。

3 楼

#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 楼

这个递归有点晕 你函数里面控制条件也没有啊 根本递归不了 还有递归本来就是很难理解的 像这种求最大值的一般就不要去用什么递归了

5 楼


额,做出来了;
呵呵,感觉你经常教我呢,谢谢!
#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 楼

呵呵 我也是在学习的  一起进步么

我来回复

您尚未登录,请登录后再回复。点此登录或注册