递归求最值,有错求解

小强茜茜 2012-05-15 10:54:49

#include <stdio.h>
int max(int a[],int n)
{
int Max;
if(n==0)
return Max;
else
Max=a[n-1]>Max?a[n-1]:Max;
max(a,n-1);

}
int min(int a[],int n)
{
int Min=356;
if(n==0)
return Min;
else
Min=a[n-1]<Min?a[n-1]:Min;
min(a,n-1);
}
void main()
{
int i,n,a[30];
printf("please number n:\n");
scanf("%d",&n);
printf("please enter n int number:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("The max Number is %d\n",max(a,n));
printf("The min Number is %d\n",min(a,n));
getch();
}
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小强茜茜 2012-05-21
  • 打赏
  • 举报
回复
要用递归的方法,谢谢!
pathuang68 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C/C++ code
#include <stdio.h>
int max(int a[],int n)
{
int Max;
if(n==0)
return Max;
else
Max=a[n-1]>Max?a[n-1]:Max;
max(a,n-1);

}
int min(int a[],int n)
……
[/Quote]

两个递归函数写得不对,用下面的代码应该可以:

int max(int a[], int n)
{
if(n <= 0) return a[0];
int Max = a[n-1] > max(a,n - 1) ? a[n-1] : max(a,n - 1);
return Max;
}

int min(int a[],int n)
{
if(n <= 0) return a[0];
int Min = a[n-1] < min(a,n - 1) ? a[n-1] : min(a,n - 1);
return Min;
}
小强茜茜 2012-05-15
  • 打赏
  • 举报
回复
#include <stdio.h>
int max(int a[],int n)
{
int Max;
if(n==0)
return Max;
else
Max=a[n-1]>Max?a[n-1]:Max;
max(a,n-1);

}
int min(int a[],int n)
{
int Min=356;
if(n==0)
return Min;
else
Min=a[n-1]<Min?a[n-1]:Min;
min(a,n-1);
}
void main()
{
int i,n,a[30];
printf("please number n:\n");
scanf("%d",&n);
printf("please enter n int number:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("The max Number is %d\n",max(a,n));
printf("The min Number is %d\n",min(a,n));
getch();
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧