我的代码是这将使用递归从数组中找到最大数字,但它找不到最大数字
#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;
}
答案 0 :(得分:6)
使用此特定行
return 5; // return ar[n-1] > max ? ar[n-1] : max;
in
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!
答案 1 :(得分:-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);
}