注册 登录
编程论坛 C++教室

error:'main' must return 'int'

qq352320412 发布于 2011-08-27 12:48, 9329 次点击
#include<iostream.h>
using namespace std;

//类的定义;
class Circle
{
      public:
             float radius;//圆的半径
             float area();//圆的面积
             float perimeter();//圆的周长
};
//类的实现
float Circle::area()
{
      return radius*radius*3.14159;
}
float Circle::perimeter()
{
      return 2*3.14159*radius;
}
//类的使用对象
void main()
{
     Circle c;
     float areaOfc,perimeterOfc;
     
     cout<<"请输入圆的半径:";
     cin>>c.radius;
     if(c.radius<0)
         cout<<"半径不能为负数!\n";
     else
     {
         areaOfc=c.area();
         perimeterOfc=c.perimeter();
         cout<<"半径为"<<c.radius<<"的圆的面积为:"<<areaOfc;
         cout<<"半径为"<<c.radius<<"的圆的面积为:"<<perimeterOfc;
     }
}

编译后为什么 错误 1,'main'函数必须返回’int' ?  

6 回复
#2
hellovfp2011-08-27 12:57
它要求,你就改呀。
int main()
{
     ...
     return 0;
}
#3
qq3523204122011-08-27 13:06
为什么改了以后再Dev C++里可以编译,在vc里不能了
#4
hellovfp2011-08-27 13:23
VC里报什么错?两个编译器是有点不同,但大多数时候,dev c++可以编译的,vc里除了少数时候会报警告,多数时候都会通过编译的。
#include<iostream.h> 这里改成#include<iostream>

[ 本帖最后由 hellovfp 于 2011-8-27 13:28 编辑 ]
#5
qq3523204122011-08-27 14:08
D:\编程软件\33.cpp(2) : error C2871: 'std' : does not exist or is not a namespace
D:\编程软件\33.cpp(15) : warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data
执行 cl.exe 时出错.

33.obj - 1 error(s), 0 warning(s)
#6
rjsp2011-08-27 16:49
把#include<iostream.h>改为#include <iostream>

记住:
a. C/C++标准都规定main函数的返回类型为int,从来没有允许void main
b. C++中没有iostream.h,没有!!!(虽然不是“从来没有”,但起码废弃十多年了)
#7
qq3523204122011-08-28 13:05
谢谢楼上大侠指点
1