c – 返回数组中最小元素的索引

前端之家收集整理的这篇文章主要介绍了c – 返回数组中最小元素的索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用整数数组中的最小元素返回索引.我错过了什么吗?在我将整数放入后,它不会返回索引.

更新:我在int main()的末尾遇到一个关于数据堆栈被破坏的错误.谢谢.我的代码如下:

#include <iostream>
#include <conio.h>

using namespace std;

int indexofSmallestElement(double array[],int size);

int main()
{    
int size = 10; 
double array[10];

for (int i = 0; i <= size; i++)
{
    cout << "Enter an integer: " << endl;
    cin >> array[i];
}

indexofSmallestElement(array,size);
}

int indexofSmallestElement(double array[],int size)
{
int index = 0;

if (size != 1)
{

    int n = array[0];
    for (int i = 1; i < size; i++)
    {
        if (array[i] < n)
        {
            n = array[i];
            index = i;
        }
    }
}
return index;
}

解决方法

很多人向您展示了indexofSmallestElement的变体.我将包括我的解释为什么我认为它更好:
int indexofSmallestElement(double array[],int size)
{
    int index = 0;

    for(int i = 1; i < size; i++)
    {
        if(array[i] < array[index])
            index = i;              
    }

    return index;
}

你会注意到我取消了你用来保存到目前为止遇到的最小值的n变量.我这样做是因为,根据我的经验,必须保持两个不同的事物同步可能是微妙的错误的来源.即使在这个简单的情况下,它也是多个错误的根源,其中最重要的是你的n被声明为int但你在其中分配了double类型的值.

底线:取消n变量,只记录一件事:索引.

猜你在找的C&C++相关文章