如何计算未完全填充的数组中的整数
How to count integers in an array that is not filled completely
我有一个固定大小(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"
相关文章:
- C++ 填充数组时遇到问题
- 如何使用同时设置计数和填充数组的函数
- 如何使填充数组的函数发送到函数?而不是其参数中的数组
- 如何使用文件填充数组并将其与用户输入C 进行比较
- 使用 memset 填充数组会显示垃圾
- Visual Studio从文件中填充数组时中断
- 分段 填充数组时出错
- 用不同的值填充数组/矢量的边缘和中心
- 使用相同的数据填充数组对象或使用指针
- 是否可以使用三元运算符"?"在 C/C++ 中填充数组列表?
- 填充数组(写入位置0x00000000的访问冲突)
- 从文件中读取输入并填充数组以存储数据供以后使用
- c++当循环在填充数组时没有正确终止时,希望能帮助退出此循环
- 填充数组会导致数组周围的堆栈损坏
- Cuda有效地将数据插入到未排序的填充数组中
- 填充数组的 C++ 函数
- 访问部分填充数组上的第一个打开元素
- 将一个字节数组从C#传递到C++填充数组的C++com对象中
- 如何使用向量中的信息填充数组并从数组中选择随机项
- C,填充数组使用dec2bin转换器