Int main()不返回任何内容

时间:2015-05-24 11:11:34

标签: c

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的索引。我认为它是正确的,因为它运行没有错误,但它只是不返回索引。

我做错了什么?对不起初学者的问题。

谢谢!

2 个答案:

答案 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;
}