在运行时,max从数字列表中给出所需的最大数量,但是min没有给出它应该给出的最小数量.例如:
如果输入是:
5
45 7 2 1 4
以下代码的输出是:
最大数量是45
最小数量为0
为什么?
#include <stdio.h>
#include <limits.h>
#define MX 1000000
int max=INT_MIN;
int min=INT_MAX;
int findmax(int a[],int n)
{
if(n<0)
return max;
if(a[n]>max)
{
max=a[n];
}
return findmax(a,n-1);
}
int findmin(int a[],int n)
{
if(n<0)
return min;
if(a[n]<min)
{
min=a[n];
}
return findmin(a,n-1);
}
int main(void) {
int a[MX],n,i;
printf("Enter the number of elements:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Maximum number is %d\n",findmax(a,n));
printf("Minimum number is %d\n",findmin(a,n));
return 0;
}
Run Code Online (Sandbox Code Playgroud)