随机生成由 n 个正整数构成的数组,并用递归算法求该数组的和及最大值。
2条回答 默认 最新
- CSDN专家-link 2021-10-22 09:29关注
简单的递归作用就是替代循环而已。
递归函数中求当前的和及最大值,然后调用递归求下一个数组元素#include<stdio.h> #include <time.h> void fun(int *a,int n,int pos,int *sum,int *max) { *sum += a[pos]; if(a[pos] > *max) *max = a[pos]; pos++; if(pos == n-1) return; fun(a,n,pos,sum,max); } int main() { int a[100]; int n,sum,max; scanf("%d",&n); srand((unsigned)time(NULL));//选取种子文件 for(int i=0;i<n;i++) { a[i] = rand(); } sum = max = a[0]; fun(a,n,1,&sum,&max); for(int i=0;i<n;i++) printf("%d ",a[i]); printf("\nsum=%d,max=%d\n",sum,max); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分