回 帖 发 新 帖 刷新版面

主题:[讨论]C++求救

原代码是

#include<math.h>
int 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);
return 0;
}


 错误是
Compiling...
1111.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(6) : error C2065: 'scanf' : undeclared identifier
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(7) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(8) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(9) : error C2065: 'printf' : undeclared identifier
执行 cl.exe 时出错.

111.exe - 1 error(s), 0 warning(s)
  
请问问题出现在哪里啊,我修改过好多次都是这样,麻烦帮我解答一下,谢谢!!

回复列表 (共6个回复)

沙发

#include<math.h>
#include<stdio.h>
int 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);
return 0;
}

板凳


我加了,你所加了  #include<stdio.h>
还是出现了错误,内容是
Compiling...
1111.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(7) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\1111.cpp(8) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
Linking...
LINK : fatal error LNK1104: cannot open file "Debug/111.exe"
执行 link.exe 时出错.

111.exe - 1 error(s), 0 warning(s)
为什么会这样的呢,我用的是VC++,麻烦你了大哥!!

3 楼

还是出现了错误,内容是
------ 前面两个不是错误,是警告,看仔细了;后面一个错误与代码无关,说是111.exe不能被打开,可能是因为你这个111.exe还在运行着没有结束。

要想去掉前面两个警告,最好的是
double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c);
如果你极度迷恋float,不用它不可,可以改
s=1.0/2*(a+b+c); 为 s=1.0f/2*(a+b+c);

4 楼

s=1.0f/2*(a+b+c)加个f这样是什么意思呢?

5 楼


1.0为double型转换下类型

6 楼

s=1.0/2*(a+b+c);你把这一句
改为:s=1.0/2.0*(a+b+c);

我来回复

您尚未登录,请登录后再回复。点此登录或注册