如何计算未完全填充的数组中的整数

How to count integers in an array that is not filled completely

本文关键字:填充 数组 整数 何计算 计算      更新时间:2023-10-16

我有一个固定大小(10)的int类型数组,它没有完全填满。

我想计算数组中有多少个整数,以便我知道如果要向数组添加整数,将数组索引到哪个值。(这样我就不会替换另一个值)

//Define Array
int counter=0;
int scores[10] = {92,87,94,99,96};
//Count how many elements are in the score array
for (int i = 0; i < 10; i++)
{
    if (scores[i] == 1)
    {
        counter++;
    }
}

当我输出变量计数器时,我得到的值为"0"。

看了几个堆栈溢出帖子,我似乎找到了任何可以帮助我找到解决方案的东西! 任何帮助或建议都会有很大帮助。

谢谢。

编辑:我能够得到我问题的答案,但是我很后悔发帖,因为我现在有 2 个声誉点! 你们太苛刻了!这是正确答案

//Define Array
    int counter=0;
    int scores[10] = {92,87,94,99,96};
    //Count how many elements are in the score array
    for (int i = 0; i < 10; i++)
    {
        if (scores[i] != 0)
        {
            counter++;
        }
    }

例如,您可以认为数组中包含 0(或 -1)的元素是未填充的元素。

在任何情况下,数组的每个元素都应包含一个实际值或 0。

此初始化

int scores[10] = {92,87,94,99,96};

相当于

int scores[10] = {92,87,94,99,96,0,0,0,0,0};

所以循环可能看起来像

for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != 0)
    {
        counter++;
    }
}
如果要对非填充元素

使用值 -1,则必须显式初始化非填充元素,例如

int scores[10] = {92,87,94,99,96,-1,-1,-1,-1,-1};

循环将如下所示

for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != -1)
    {
        counter++;
    }
}

你不必做所有这些。只需数组中每次存储数字时递增计数器,计数器本身就会告诉您需要在哪个索引存储下一个数字。

使用 std::vector ,然后使用 size 方法:

std::vector v={1,2,4,8};
cout << "Vector size is: " << v.size() << "n"