呵呵,你这个程序的main函数写成如下形式会计较好,因为这涉及到了一个标准问题。你可以试试,不行的话再说。 int main() //函数main改为 int 类型 { float a, b; double c; cin >> a >> b; c=b*PI*a*a; cout << c << endl; return 0;//这行可以省略; }
你可以参考如下资料:
关于 void main
在 C 和 C++ 中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 。然而这是错误的!main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。虽然在一些编译器中,void main 可以通过编译(如 vc6),但并非所有编译器都支持 void main ,因为标准中从来没有定义过 void main 。g++3.2 中如果 main 函数的返回值不是 int 类型,就根本通不过编译。而 gcc3.2 则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用 int main .
总而言之:
void main 主函数没有返回值 main 默认为int 型,即 int main(), 返回整数。 注意,新标准不允许使用默认返回值,即int不能省,而且对应main函数不再支持void型返回值,因此为了使程序有很好的移植性,强烈建议使用: int main() {