问题标题: 酷町堂:1673求三角形的面积只有70分

1
0
已解决
周天睿
周天睿
初级光能
初级光能
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int b,h;
    float s;
    cin>>b>>h;
    s=b*h/2;
    cout<<s;
    return 0;
}

我哪里错了?

我会找一个最详细的解答进行采纳!


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

你的错误在于:应该是变量问题。

int b,h;应该用double b,h;

其他变量没有问题。

公式应用正确。

头文件没问题(应该可以省去‘#include<cstdio>’)

正确的代码如下

(只是部分代码):

    double a,h;//定义变量底和高;
    cin>>a>>h;//输入变量底和高;
    double s=a*h/2;//S三角形面积=底*高,面积公式
    cout<<s;//输出面积
    return 0;//返回值=0

贾老师说过:一般情况下,有些题目中关于面积公式的题目最好把整形变量切换成double类型变量。

【注意,顺便提一句:

市赛时最好用double,不用float(除非空间太小)

我的解答希望你采纳

0
0
杨陈卓
杨陈卓
新手天翼
新手天翼

b和h也要定义成浮点型

我刚试的

100分

杨陈卓在2018-02-03 11:45:31追加了内容

浮点型包括整型

也包括小数型

0
陆姗姗
陆姗姗
资深守护
资深守护

因为你定义的b和h都是整型变量,b*h/2的结果也是整型,s=b*h/2;只是把b*h/2得到的整数结果赋值给浮点型变量s

需要在做b*h/2运算的时候至少有其中一个数是浮点型

0
赵逸凡
赵逸凡
初级启示者
初级启示者

错点在于:b*h/2不对,也可以double(b*h/2)[编译器可能报错]

{{{追答上述回答}}}

0
我要回答