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

那里错了,新手求解

kk1267 发布于 2013-04-02 21:26, 585 次点击
#include<iostream>
using namespace std;
int main()
{int x;//第一条边
int y;//第二条边
int z;//第三条边
int A;//三角形的面积
cout <<"请输入第一条边边长\n";
cin >>x;
cout <<"请输入第二条边边长\n";
cin >>y;
cout <<"请输入第三条边边长\n";
cin >>z;
s=(x+y+z)/2;
A=sqrt(s*(s-x)*(s-y)*(s-z));
cout <<"三角形的面积是:"<<A <<endl;
return 0;
}
6 回复
#2
yuccn2013-04-02 21:38
s=(x+y+z)/2; s 还没有定义
同时要include sqrt所在的头文件
#3
邓士林2013-04-02 22:32
#include <cmath>这个库函数应该有,还有你的s没定义,改下就可以了
#4
kk12672013-04-02 22:35
回复 2楼 yuccn
能具体一点吗?
#5
shmilyflf2013-04-02 23:23
目测你这个按上面的改了还是错误。你三个int的相加除以2,最后估计不会是你想要的结果,除非能整除。
#6
屠神2013-04-03 11:01
楼上说的对,应该数据定义成float型或double型
#7
a9867763352013-04-03 11:35
#include<iostream>
#include <math>
using namespace std;
int main()
{int x;//第一条边
int y;//第二条边
int z;//第三条边
int A;//三角形的面积
cout <<"请输入第一条边边长\n";
cin >>x;
cout <<"请输入第二条边边长\n";
cin >>y;
cout <<"请输入第三条边边长\n";
cin >>z;
float s=0;//or double 也行
s=(x+y+z)/2;
A=sqrt(s*(s-x)*(s-y)*(s-z));
cout <<"三角形的面积是:"<<A <<endl;
return 0;
}
1