c++ - 整数数组中每个元素的位数之和
问题描述
我想计算数组中每个元素的数字总和。问题在于这段代码只计算数组中奇数索引 (1,3,5...) 的总和。在控制台中,它显示了偶数索引的一些随机数(0,2,4 ...)
谁能告诉我有什么问题?
是的,我需要将它用作数组
以下是输出值:
Enter how many numbers you want to calculate sum of digits: 5
Enter those numbers: 12
Enter those numbers: 33
Enter those numbers: 44
Enter those numbers: 22
Enter those numbers: 33
Sum of 0 number is: 4
Sum of 1 number is: 6
Sum of 2 number is: 40
Sum of 3 number is: 4
Sum of 4 number is: 11730950
#include <iostream>
int main(int argc, char** argv)
{
int n;
int temp;
int pom;
cout << "Enter how many numbers you want to calculate sum of digits: ";
cin >> n;
int numbers[n];
int sum[n];
for (int i = 0; i < n; i++)
{
cout << "Enter those numbers: ";
cin >> numbers[i];
}
for (int i = 0; i < n; i++)
{
while (numbers[i] > 0)
{
temp = numbers[i] % 10;
sum[i]+= temp;
numbers[i] = numbers[i]/10;
}
}
for (int i = 0; i < n; i++)
{
cout << "Sum of " << i << " number is: " << sum[i] << endl;
}
return 0;
}
解决方案
您需要初始化sum
数组,如下所示:
int sum[n] {};
否则,您第一次从您的元素中读取时sum
会有未定义的行为。
此外,可变长度数组不是标准 c++ 的一部分。如果您在编译时不知道数组的大小,只需使用std::vector
.
如果您绝对必须使用数组,那么您将需要动态分配它,如下所示:
int * arr = new int[n]{};
推荐阅读
- scala - 如何仅根据值的逻辑条件过滤键、值对并构造键的 rdd?
- reactjs - React JS:理解状态
- javascript - 无法在节点 js 中读取八位字节流响应?
- verilog - 如何在 Verilog 中分配模块参数?
- java - JUnit 测试不断收到空点异常
- c++ - 如何实现容纳整数和空指针的双向链表?
- azure - 在 Azure AD B2C 作为 IdP 和 Salesforce 作为 SP 之间设置 SAML 联合
- r - R - 循环 API 调用
- debugging - Break All 和 Stop Debugging 在 Visual Studio 中的位置错误
- python - 有没有办法在 Python-Plotly 图表中添加边线?