C++ 如何计算未完全填充的数组中的整数
我有一个固定大小(10)的int型数组,它没有完全填满 我想计算数组中有多少个整数,这样我就知道如果我想向数组中添加一个整数,数组的索引值是什么。(这样我就不会替换另一个值)C++ 如何计算未完全填充的数组中的整数,c++,arrays,for-loop,integer,C++,Arrays,For Loop,Integer,我有一个固定大小(10)的int型数组,它没有完全填满 我想计算数组中有多少个整数,这样我就知道如果我想向数组中添加一个整数,数组的索引值是什么。(这样我就不会替换另一个值) //定义数组 int计数器=0; 整数分数[10]={92,87,94,99,96}; //计算分数数组中有多少个元素 对于(int i=0;i P>例如,你可以认为包含0(或-1)的数组中的元素是未填充元素。 在任何情况下,数组的每个元素都应包含一个实际值或0 此初始化 int scores[10] = {92,87,9
//定义数组
int计数器=0;
整数分数[10]={92,87,94,99,96};
//计算分数数组中有多少个元素
对于(int i=0;i<10;i++)
{
如果(分数[i]==1)
{
计数器++;
}
}
当我输出变量计数器时,我得到值“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++;
}
}
//定义数组
int计数器=0;
整数分数[10]={92,87,94,99,96};
//计算分数数组中有多少个元素
对于(int i=0;i<10;i++)
{
如果(分数[i]!=0)
{
计数器++;
}
}
你不必做这些。
只要<强>增加计数器< /强>每次在数组中存储一个数字,计数器本身将告诉你需要存储下一个数的索引。例如,
> P>例如,你可以认为包含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++;
}
}
for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
if ( scores[i] != -1)
{
counter++;
}
}
这个循环看起来像
for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
if ( scores[i] != 0)
{
counter++;
}
}
for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
if ( scores[i] != -1)
{
counter++;
}
}
for(大小i=0;i
使用std::vector
,然后使用size
方法:
std::vector v={1,2,4,8};
cout << "Vector size is: " << v.size() << "\n"
std::vector v={1,2,4,8};
难道显示的分数值中没有一个是1
,那么您希望得到什么?不,它会检查该值是否等于1
,与==1
的含义完全相同。@humanid16524879543每个索引处都有一个值int
没有“无值”属性。它应该是std::vector
notstd:vecton
,这是一个打字错误。太棒了,我会接受答案。我唯一的问题是你为什么把“i”初始化为尺码?会说int i not work吗?@humanid165248795443 sizeof运算符返回的值类型是size\t,它是无符号类型。编译器可能会发出警告,指出您正在比较有符号类型(I)的对象与无符号类型的对象(由带有sizeof的表达式返回)可能会显示push_back()/emplace_back(),以显示可以添加项的操作。