【问题标题】:C++ std:cout won't print, despite me using std::endl to enter newline and flushC++ std:cout 不会打印,尽管我使用 std::endl 输入换行符并刷新
【发布时间】:2021-10-23 09:48:31
【问题描述】:

我是 C++ 新手(主要是一般编程)。

我正在尝试编写一个基本程序来输出 x = 1.5 从 n = 1 到 n = 100 的泰勒展开。我的代码是这样的:

#include <iostream>

int main() {

        double x = 1.5;
        double expx = 1;
        double summand = 1;
        
        for (int n=1; n <100; ++n) {
                summand *= x/n;
                expx += summand;

        }
        return expx

        std::cout << "final expx from n = 1 to 100 is " << expx << std::endl;
}       

当我运行它时,它在终端上运行没有错误,但根本不显示任何输出。我不太确定自己做错了什么,因为当我运行我编写的其他代码时,与此类似,我没有问题。

【问题讨论】:

  • 在输出到 std::cout 之前从 main 返回(请注意,您的示例代码甚至无法编译)

标签: c++ output stdout


【解决方案1】:

你应该做的是创建一个 expx() 函数并输出它的结果。

#include <iostream>

double expx()
{
    double x = 1.5;
    double expx = 1.0;
    double summand = 1.0;
        
    for (int n=1; n <100; ++n) 
    {
        summand *= x/n;
        expx += summand;
    }
    return expx;
}

int main() 
{
    double value = expx();
    std::cout << "final expx from n = 1 to 100 is " << value << std::endl;
}   

【讨论】:

    【解决方案2】:

    您在函数内的 return 语句之后编写的任何内容都不会执行。 您需要切换最后两行,即:

    std::cout << "final expx from n = 1 to 100 is " << expx << std::endl;
    return expx
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      相关资源
      最近更新 更多