Microsoft Visual C++ 6.0的一个程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/02 20:07:42
# include "math.h"
main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}

调试时它给我的是:
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
d:\cpp1.cpp(5) : error C2065: 'scanf' : undeclared identifier
d:\cpp1.cpp(6) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
d:\cpp1.cpp(7) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
d:\cpp1.cpp(8) : error C2065: 'printf' : undeclared identifier
d:\cpp1.cpp(10) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.e

开头加个头文件:
#include<stdio.h>

d:\cpp1.cpp(5) : error C2065: 'scanf' : undeclared identifier (错误)
d:\cpp1.cpp(8) : error C2065: 'printf' : undeclared identifier (错误)
这两条是由于没有包含头文件 stdio.h

d:\cpp1.cpp(6) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data (警告而非错误,程序依然可以执行)
这是由于sqrt的返回值类型是double,而area是float类型

d:\cpp1.cpp(10) : warning C4508: 'main' : function should return a value; 'void' return type assumed(警告而非错误,程序依然可以执行)

main()函数最好是int类型,并且结尾返回一个值 return 0;