m0_62833534 2021-12-07 13:04 采纳率: 100%
浏览 41
已结题

为什么这个程序运行异常

题目编号:Exp06-Enhance01,GJBook3-10-05

题目名称:最大元素

题目描述:编写程序,用递归方法求解长度为n的整型数组中最大元素值。

输入:第一行输入一个正整数n(0<n≤100),表示数组的元素个数;第二行依次输入n个整数,作为数组的元素。

输出:最大元素的值。

样例1:

输入:
10
9 8 7 6 5 4 3 2 1 0
输出:
9
样例2:

输入:
10
0 1 2 3 4 5 6 7 8 9
输出:
9

我的答案

#include <stdio.h>
#include <stdlib.h>
int max(int a1[],int len1)
{
    if(len1>1)
    {if((max(a1,len1-1))>a1[len1-1])
        return max(a1,len1-1);
    else
        return a1[len1-1];
    }
    else
        return a1[len1-1];
}

int main()
{
    int a[200],n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    int len=i;
    int max1=max(a,len);
    printf("%d",max1);
    return 0;
}


运行结果及报错内容 :

调用程序运行服务异常

这是为什么呢,以及如何解决?

谢谢!

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-12-07 13:13
    关注

    递归超时了吧,n=100的时候,递归耗时较大

    int max(int a1[], int len1) {
        if(len1 == 1)
            return a1[0];
        int m = max(a1,len1-1);
        if(m > a1[len1 - 1])
            return m;
        else return a1[len1-1];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月7日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化