c++ - 为什么 cout 给出 'nan' 输出?

标签 c++

当我在 cout 中调用函数时,我的 C++ 代码给出了“nan”输出。如果我删除注释标记 ('//') 并在没有 cout 的情况下调用该函数,则输出是正确的。

代码:

#include <iostream>
#include<math.h>

using namespace std;

double sumOfSquare(double x, double y){
   // cin>> x>> y;
    double sum1 = 0;
    for(double i = x; i <= y; i++){
        sum1 += pow(i , 2);
    }
    //cout<< sum1 <<endl;

}

double squareOfSum(double a, double b){
    double sum2 = 0;
    for(double j = a; j <= b; j++){
        sum2 += j;
        }
       // cout<< pow(sum2, 2) <<endl;
}

int main()
{
    cout<< sumOfSquare(1, 100);
    squareOfSum(1, 100);
    cin.get();
    return 0;
}

最佳答案

sumOfSquaresquareOfSum 函数不返回值。它们应该返回一些东西以便 cout 打印它们(或让任何其他代码使用这些值)。因此,这两个函数可能会返回 NaN0(在我的编译器上)或其他任何内容。

示例:

double sumOfSquare(double x, double y){
   // cin>> x>> y;
    double sum1 = 0;
    for(double i = x; i <= y; i++){
        sum1 += pow(i , 2);
    }
    return sum1;

}

double squareOfSum(double a, double b){
    double sum2 = 0;
    for(double j = a; j <= b; j++){
        sum2 += j;
        }
    return pow(sum2, 2);
}

关于c++ - 为什么 cout 给出 'nan' 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155937/

相关文章:

c++ - 连分数

c++ - 适合构图的智能指针

c++ - 重载赋值运算符是否总是由 C++ 编译器提供?

c++ - 编写驱动程序时解决方案资源管理器中没有文件

c++ - 为什么 C++11 引入了委托(delegate)构造函数?

c++ - 让 gcc 将一系列 BYTE 比较转换为 WORD/DWORD/QWORD

c++ - 如何在不复制此代码的情况下将一些代码放入多个命名空间?

c++ - 为什么 BTNS_DROPDOWN 样式会导致整个工具栏向下移动几个像素?

c++ - 一种在没有光线转换和多个目标的情况下使用 3D 寻路的方法

c++ - 在结构中保存一个整数数组。无法正确定义结构