(c++)数组中的特定值
(C++) Specific values in an array
我不确定如何命名我的问题,但这里开始。我正在测试一些功能,遇到了一个问题。
我想知道的是如何设置一个"for"或"if"语句,只将值放在符合条件的数组中?例如,找到一个数字的每个除数,但只把因数放在数组中。
任何帮助将是爱,源代码可以提供,如果需要:)。是的,我是新来的,所以温柔点!
#include <iostream>
using namespace std;
int main(){
int n;
int counter = 1;
cout << "What number would you like to use? ";
cin >> n;
int DiviArray[n];
for (int k=0,j=1;k<n;k++,j++)
{
DiviArray[k] = n-k;
}
int k = 3;
int factn[n];
cout << "Factors of " << n << ": " << endl;
for (int i=0, j=1;i<n;i++,j++)
{
factn[i] = n/DiviArray[i];
if(factn[i]*DiviArray[i]==n)
{
cout << counter << ". " << factn[i] << " x " << DiviArray[i] << endl;
counter++;
}
}
return 0;
}
编辑:决定用矢量,不确定我是否能让它工作,但感谢反馈的家伙:)
由于您事先不知道有多少值符合条件,因此您应该使用std::vector
。
作为一个好处,它可以跟踪您已经添加了多少元素,因此push_back
将始终使用下一个可用的索引。
也修复
cin >> n;
int DiviArray[n];
如果您只想将值放入与条件匹配的数组中,那么您应该只在条件匹配时将数字放入数组中。要做到这一点,将数字放入数组的语句必须位于条件的if块中。我希望我不需要解释为什么:)
这是程序中唯一需要两个索引的情况:一个索引在每次循环中递增(计算运行进程的次数),另一个索引仅在将数字放入数组时递增(以确定下一个数字的位置)。在其他任何地方,您都创建了一个完全无用的j
变量(无用性应该从没有实际使用该值的代码中显而易见,只有设置它的代码)。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '