递归算法,C语言

lw2530 2017-11-13 09:09:37
输入i值,用递归算法求数组中下标从零到i的最小值,输出结果。

#include<stdio.h>
#define N 10
int Min(int A[],int i)
{
int min=0;
if(i==0)
return A[0];
else
{
min=Min(A,i-1);
if(A[i]<min)
return A[i];
else
return min;
}
}
int main()
{
int A[N];
int i=0,j=0;
printf("请输入数组元素:\n");
for(j=0;j<N;j++)
{
scanf("%d",&A);
}
printf("请输入i的值:\n");
scanf("%d",&i);
Min(A,i);
printf("最小值为:%d\n",Min(A,i));
return 0;
}
该算法不能得到正确结果,希望帮我改正下!
...全文
196 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
for(j=0;j<N;j++) { scanf("%d",&A); } 我眼都看花了,才发现是这里的问题,应该是 for(j=0;j<N;j++) { scanf("%d",&A[j]); } 你的数组都没正确赋值,怎么可能找到最小值哪
  • 打赏
  • 举报
回复
paschen 2017-11-14
单步跟踪程序运行,看是哪一步与你期望的值不一致,分析原因
  • 打赏
  • 举报
回复
赵4老师 2017-11-14
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
  • 打赏
  • 举报
回复
das白 2017-11-13
希望你可以自己设置断点调试一下
  • 打赏
  • 举报
回复
machao018111 2017-11-13
没啥毛病啊,你再看看
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-13 09:09
社区公告
暂无公告