数组元素编号

Array element number

本文关键字:编号 数组元素      更新时间:2023-10-16

我需要一些简单程序的帮助。不 - 这不是我的家庭作业(我正在为自己学习 Cpp,将来可能会使用它(所以是的。我有一个程序,它读取数组大小10,然后将数字放入其中{2.56, 1.598, 0, 5.15, 0, 3.012, 10, 4.789, 2.569, 0}程序应该忽略0,确实如此,但问题是。我需要获取数字放置在数组中的数字(最小的数字是数组中的1.598及其2(同时,我在最大的数字上得到第 8 个(如果忽略零,应该5(最小的1。我该如何解决这个问题?这是最大数字的空白:

void Biggest(float array[], int n, float &max, int &maxNr)
{
    max = array[0]
    for (int i = 1; i < n; i++){
        if (array[i] == 0)
            continue;
        if (array[i] > max){
            max = array[i];
            maxNr = i;
        }
    }
}

印刷空隙 :

void Print(float min, float max, double avg, int maxNr, int minNr)
{
    ofstream info;
    info.open("result1.txt");
    info << "Biggest: " << max << "  Number : " << maxNr << endl;
    info << "Smallest: " << min << "  Number : " << minNr << endl;
    info << "Average: " << avg << endl;
    info.close();
}

而且都是主要的。

int main(){
    float array[100];
    int n;
    float max;
    float min;
    double avg;
    int maxNr, minNr;
    Reading(array, n);
    Biggest(array, n, max, maxNr);
    Smallest(array, n, min, minNr);
    Average(array, n, avg);
    Printing(min, max, avg, maxNr, minNr);
    return 0;
}

首先,数组索引从 0 开始,而不是1

如果你想得到忽略零的位置,你需要使用一个与用于索引数组的计数器变量不同的计数器变量,这样当你跳过0时不会增加它。

void Biggest(float array[], int n, float &max, int &maxNr)
{
    max = array[0];
    int position = 0;
    for (int i = 0; i < n; i++){
        if (array[i] == 0) {
            continue;
        }
        if (array[i] > max){
            max = array[i];
        }
        position++;
    }
    maxNr = position;
}

大多数(我能想到的(编程语言中的数组从索引零开始。因此,只需将 for 循环条件更改为:

for (int i = 0; i < n; i++)

因为您希望循环从数组中的第一个元素开始,所以 i 必须初始化为 0。这应该可以解决您在使用阵列时遇到的问题。