c++ - 简单的 C++ 求和程序

标签 c++ double

这是我第一次使用 C++,我正在编写一个小程序来计算将在命令提示符中输入的十个数字( double )的总和。

我写了下面的代码,但我不明白为什么它不会产生预期的结果。

int main()
{
    double num[10];
    double sum = 0;
    int i;
    int n = 10;

    while (scanf_s("%lf", &num) != EOF)
    {
        for (i = 0; i < n; ++i)
        {
            scanf_s("%lf", &num);
            sum = sum + num[i];
        }
    }

    cout << sum;

    system("pause");
    return 0;
}

数据输入以控件 D 结束。 在我看来,它应该运行良好,但事实并非如此。有人可以给我一些解决这个问题的建议吗,我不想被告知正确的方法我宁愿自己学习。

最佳答案

问题是 &num 是数组的地址。所以你总是在 num[0] 中读取你的值,这意味着 num[i] 在大多数情况下是随机的。

尝试改变你的循环:

for (i = 0; i < n && (cin>>num[i]); ++i)
{
    sum = sum + num[i];
}

关于c++ - 简单的 C++ 求和程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376931/

相关文章:

c++ - 不显示逻辑盘符

java - 使用Java从Excel读取数据时如何仅提取整数值而不是Double值

c++ - 在标题中定义 cv::Mat 后跟另一个 Mat 避免了多个 channel

c++ - boost::lockfree::queue 正在耗尽我的 CPU

c# - 以编程方式清理 Windows 缩略图缓存

c++ - 使用 IAccessible 访问 Mozilla 的 ISimpleDOMNode

c - 如何将大行的位换行,使其不再是一大行?

c - 17位或更多位 double

types - double float 是如何存储和计算的?

java - 如何操作数组。求平均值。初学者Java