为什么编译器总提示: “main”的返回类型应为“int”而非“double”

#include "stdafx.h"
#include"iostream"
using namespace std;

double x(double x)
{
return x*x;
}
double (*f)(double )=x;
double integ(double a,double b,int n,double (*f)(double) )
{
double gap=(a-b)/n,span,s=0.0;
for(span=a+gap/2;span<b;span+=(gap/2))
{
s+=f(span)*gap;
}
return s;
}
double main()
{
cout<<"输入上下限和精度";
double a,b;
int n;
cin>>a>>b>>n;
return integ(a,b,n,x);

}
为了回答者的方便 说明一下 这个程序是用来求函数X*X的定积分的

main函数的返回值是给操作系统的,所以必须是int
int main()
{...}
不明白是你为什么要把integ的计算结果当作main的返回值呢追问

还有这一说???我竟然不知道 ,那能对我说说为什么必须是int吗?main的返回值除了void 和 int还可以是什么 那怎么修改才能使计算结果精确呀

追答

最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
main 函数的返回值用于说明程序的退出状态。如果返回 0,则代表程序正常退出,否则代表程序异常退出

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-17
在现行的C99标准中,main函数的返回值只能是int,而且,当main函数return后程序就结束了,你返回个double值也没用。
第2个回答  2012-01-08
这很显然是语法规定,不得返回double,错误信息说的非常清楚追问

那应该怎么修改呀 必须返回double才能使计算结果精确呀

相似回答