-4

我的代码是这将使用递归从数组中找到最大数,但它没有找到最大数

#include <stdio.h>

int maximum(int ar[], int n)
{

    if (n == 1) {
        return ar[0];

    } else {
        int max = maximum(ar, n-1);
        printf("Largest element : %d\n", max);
        return 5; // return ar[n-1] > max ? ar[n-1] : max;
    }
}

int main()
{
    int array[5] = {5, 23, 28, 7, 1};
    printf("Maximum element of the array is: %d", maximum(array, 5));
    return 0;
}
4

2 回答 2

6

有了这条特殊的线

return 5; // return ar[n-1] > max ? ar[n-1] : max;

if (n == 1) {
        return ar[0];

    } else {
        int max = maximum(ar, n-1);
        printf("Largest element : %d\n", max);
        return 5; // return ar[n-1] > max ? ar[n-1] : max;
    }
}

它总是返回 5!

于 2013-05-29T14:01:14.947 回答
-4
#include<stdio.h>
void main()
{
    int pin[10]={2,4,6,34,56,54,34,23,1,10},i,max,k;

    max=pin[0];
    for(i=0;i<10;i++)
    {
        if(pin[i]>=max)
        {
            max=pin[i];
            k=i;
        }
    }
    printf("The max number of the array is: %d and it is in  %d position of the array\n",max,k+1);
}
于 2013-05-29T14:05:08.070 回答