为什么主函数输出73.4即使它的返回类型是int?

时间:2017-09-25 02:21:58

标签: c++

我是C ++的初学者,并且对int main();的使用感到困惑。我在网站上看了一些关于此的线索,但如果有人能够提供我对问题的深入了解,我会很高兴。

对于下面的程序,如果我的输入是23,则输出值是73.4,这不是一个int值,这与我对main()函数的定义应该仅返回int值的事实相反。

我在这里缺少什么?谢谢!

我的计划如下:

#include <iostream>
using namespace std;

int main(){

  double Celsius, Farenheit; // defining variables celsius and farenheit
  cout << " Input temperatue in celsius and press ENTER" << endl;
  cin >> Celsius;

  //double Farenheit;
  Farenheit = ((Celsius*180)/100) + 32;
  cout << "Value in Farenheit is:";
  cout << Farenheit <<endl ;

  //system("Pause");
  return 0;

  }

3 个答案:

答案 0 :(得分:1)

实际上,程序的输出是73.4,但输出和返回值是不同的。

程序可以在控制台中写入,实际上任何函数都可以写入控制台。但是函数的返回值与它产生的输出不同。

在您的代码中,main函数的返回值不是73.4。但这是它在控制台中产生的输出。它的返回值是返回语句之后的内容:

return 0;

是的!那就对了!返回值是返回关键字后的值!

这是一个返回int并向控制台生成输出的函数的另一个例子:

int calculate() {
    std::cout << "calculating stuff..." << std::endl;
    return 2 * 2 * 4;
}

int main() {
    int return_value = calculate();
    std::cout << "return value of calculate() is: "
              << return_value << std::endl;

    return 0;
}

这会产生输出:

  

计算东西......

     

calculate()的返回值是:16

现在也许你想知道为什么从0返回main。这通常是为了向操作系统表明程序已成功执行。

答案 1 :(得分:0)

main的返回值的目的是将退出状态返回给操作系统。在标准C中,main的唯一有效签名是:int main(void)和int main(int argc,char ** argv)您正在使用的表单:int main()是一个旧样式声明,表示维护未指定参数数量

解决您的问题。更改数据类型.aa

int celcius,fahrenheit;

double celcius; int fahrenheit;

答案 2 :(得分:0)

您对Farenheit的定义使其成为double类型的变量,因此它会存储double类型的值。 int的{​​{1}}与此无关。它表示int main()的返回类型的类型,由于您的程序的最后一行main()而为0。事实上,您现在可以认为return 0中的int完全没用了。

要使程序输出为整数,您应将int main()定义为Farenheit

int