2017-09-25 88 views
-2

我是C++的初学者,并且对int main();的用法感到困惑。我在网站上查看了一些关于此的主题,但如果有人能够提供对我的问题的洞察,我会很高兴。为什么主函数输出73.4即使它的返回类型是int?

对于下面的程序,如果我的输入是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; 

    } 
+6

你正在打印出73.4,没有返回它。你正在返回'0'。 – Charles

+0

Fahrenheit是一个浮点数,你告诉代码输出一个浮点数。 Main是您的代码所在的地方,并返回0,实际上它是一个整数。 – Sailanarmo

+0

也许你缺少的是返回值不打印在任何地方?只有在脚本中可以测试该值以确定接下来会发生什么情况时才有用。 –

回答

1

事实上,你的程序的输出是73.4,但输出和返回值是不同的东西。

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

在您的代码中,主函数的返回值不是73.4。但这是它在控制台中产生的输出。它的返回值是以下退货声明:

return 0; 

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

这里的返回一个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; 
} 

这将产生输出:

计算东西...计算()

返回值是:16

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

0

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

解决您的问题。改变数据types.aa

int celcius,fahrenheit; 

double celcius; int fahrenheit; 
+2

这是C++。 'int main()'不带任何参数。 – chris

+0

@chris如果你想要命令行参数呢?然后'main'接受2个参数。 – Sailanarmo

+2

@Sailanarmo,我可以看到误解来自哪里,但这将是'int main(int,char **)'与我的评论一致。我特别对部分内容进行了评论,其中有一个空参数列表表示未指定数量的参数,这在C++中并不正确。 – chris

0

你的Farenheit定义,使其double类型的变量,因此,将存储double类型的值。 int main()int与此无关。它表示返回类型main()的类型,因为程序的最后一行是return 0,所以返回类型为0。其实你现在可以考虑intint main()完全没用。

为了使程序输出一个整数,你应该定义Farenheitint

#include <iostream> 
using namespace std; 

int main(){ 

    double Celsius; 
    int 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; 

    } 
相关问题