int maxInd (int v[], int N)
{
int max, ind;
for (i = 0; i < N; i++)
{
if (v[i] > v[i + 1]) { ind = i; }
}
return ind;
}
int main()
{
int v[10] = {1,2,3,4,5,3,7,6,8};
return maxInd(v, 8);
}
我有这个函数,我应该返回最高int的索引。我认为它是正确的,因为它运行没有错误,但它只是不返回索引。
我做错了什么?对不起初学者的问题。
谢谢!
答案 0 :(得分:2)
要修复的示例
int maxInd (int v[], int N){
int ind = 0;
for(int i=0;i<N;i++){
if(v[i]>v[ind]){
ind=i;
}
}
return ind;
}
答案 1 :(得分:0)
您的函数不会搜索数组中的最大元素。它应该定义以下方式
#include <stdio.h>
size_t maxInd( const int a[], size_t n )
{
size_t max = 0;
for ( size_t i = 1; i < n; i++ )
{
if ( a[max] < a[i] ) max = i;
}
return max;
}
int main( void )
{
int a[] = { 1, 2, 3, 4, 5, 3, 7, 6, 8 };
size_t max = maxInd( a, sizeof( a ) / sizeof( *a ) );
printf( "The maximum element of the array is %d at position &zu\n", a[max], max );
return 0;
}