【问题标题】:Area of triangle using float typcasting cpp使用浮点型 cpp 的三角形面积
【发布时间】:2021-10-16 08:33:26
【问题描述】:

我在给出底和高时找到三角形面积的解决方案(特别要求也使用浮点类型转换的问题):

#include <iostream>
using namespace std;
int area() 
{
    int b=7,h=5;
    float area;
    area=(float)b*h/2;
    return area;//Write a expression to find Area as float using typecasting
}

正确解决方案:

#include<iostream>
using namespace std;
void area() 
{
    int b=7,h=5;
    float area;
    area=(float)b*h/2;
    cout<<area;
}

我的代码有什么问题?

【问题讨论】:

  • int area() 你不认为你应该返回一个float吗?

标签: c++ integer return std void


【解决方案1】:

就其本身而言,我不会多说。

  • 当您要计算浮点数时,请确保您的所有值都是浮点数。例如。不是 2 而是 2.0f
  • C++ 中的转换通常使用 static_cast(或其他转换函数之一)完成。您使用的符号更多的是“C”风格类型转换
  • 我不太喜欢在大型项目中使用“使用命名空间”。在源代码中可以,但永远不要在头文件中这样做。

我会这样编码:

float calculate_triangle_area(const int b, const int h) noexcept
{
   float area = static_cast<float>(b) * static_cast<float>(h) / 2.0f;
   return area;
}

std::cout << calculate_triangle_area(5,7);

还有一些注意事项:

  • 我总是一有名字就让它发挥作用。这还有一个额外的好处,就是让您的代码更加“自我解释”。
  • “const int”表示您保证不会在计算中更改 b 和 h 的值。
  • noexcept 是另一个承诺,但这本身就是一个完整的主题;)

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 2014-11-03
    • 2014-12-06
    • 1970-01-01
    • 2015-07-29
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多