从数组中删除枚举并计算总和
Deleting elemnt from array and calculating sum
如果数字可以除以数组的元素数,则数字不能在数组中(例如:在有 10 个元素的数组中,数字 1、2、5 和 10 不是"受欢迎的"(。所以我需要在数组中找到所有这些元素并将它们踢出。在数组长度更改之后,数组中的其他一些元素可以"不受欢迎"。我必须重复它,直到数组没有这些元素。最后,我必须计算剩余的元素并打印出来。(我正在使用C++(
- 我不知道如何从数组中删除元素,只是将值设置为 0。我得到输入n(数组中的元素数(,然后是所有这些元素。
所以,我已经尝试过了,但我相信有更有效的方法可以做到这一点:P 这是代码:
int main()
{
short int b = 0;
short int n;
int result = 0;
cin >> n;
int m = n;
int numbers[n];
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j<=n; j++) {
if(numbers[j] != 0) {
if(n % numbers[j] == 0) {
numbers[j] = 0;
b = b + 1;
} }
}
n = n - b;
b = 0;
}
for (int i = 0; i < m; i++) {
result += numbers[i];
}
cout << result;
return 0;
}
示例输入:10 1 2 3 4 5 6 7 8 9 10示例输出:24
我不知道如何从数组中删除元素
不可能"从数组中删除元素"。n
元素数组以n
元素开始其生命周期,在其整个生命周期中具有n
元素,并以n
元素结束其生命周期。无法更改数组的大小。
另一个问题:
cin >> n; int numbers[n];
数组的大小必须是编译时常量。 n
不是编译时常量。这不是一个格式良好的C++程序。
必须动态分配运行时大小数组。最简单的解决方案是使用 std::vector
.矢量的大小可以更改,您可以使用 std::vector::erase
从中删除元素。
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- 如何计算枚举的大小
- 从数组中删除枚举并计算总和
- C++运算符和带枚举的计算结果为 false
- C++枚举的计算结果为意外值
- 在智能感知中从枚举中计算字符串常量
- 是否有可能在编译时计算数字的阶乘,但不使用枚举?
- 用于枚举完整图的哈密顿循环的算法(循环、反向、环绕或重复不计算在内的排列)
- 枚举中下一项的编译时计算