【发布时间】:2016-05-22 04:11:57
【问题描述】:
我是在这里发布问题的新手,但一直在寻找答案。我创建了这段代码来返回数组 x[] 中的最大元素。我确实得到了结果,但并不是所有的测试用例都通过了。我已经检查了很多次,但不知道要做什么来纠正它。
我在我的在线培训的一部分中这样做,所以测试用例值不是公开可见的。该代码产生了 85.71% 的积极结果。请帮我做100%。谢谢。
问题是创建一个函数 findMax(int n,int *a) 来返回最大元素。在哪里
第一个参数对应于数组中元素的数量。
第二个参数对应于指向数组的指针。
#include<stdio.h>
int findMax(int n,int *a)
{
int i,max=a[0]=0;
for(i=1;i<=n;i++)
{
if(a[i]>max)
max=a[i];
}
return(max);
}
int main()
{
int i,x[16],k,max;
printf("Enter the number of elements in the array\n");
scanf("%d",&k);
printf("Enter the elements in the array\n");
for(i=1;i<=k;i++)
{
scanf("%d",&x[i]);
}
max=findMax(k,x);
printf("The maximum element in the array is %d",max);
return 0;
}
我是编码初学者,所以更简单的解释可能会有所帮助。再次感谢
【问题讨论】:
-
a[n]也越界了。 -
换句话说,C 中的所有数组都是从零开始的,所以
for(i=1;i<=n;i++)应该是for(i=0;i<n;i++)。您还必须在每次调用scanf时验证它的返回。