计算三角形面积时结果始终为0,求代码问题排查方案
三角形面积计算结果始终为0的问题分析
你的代码有两个关键错误导致结果一直是0:
- 计算顺序完全颠倒:你在读取用户输入的底和高之前,就提前计算了
area。此时base和height是未初始化的局部变量,值是随机的,但因为第二个错误,最终结果直接变成0。正确的逻辑应该是先获取用户输入的底和高,再计算面积。 - 整数除法导致无效计算:
1/2属于整数除法,两个整数相除会直接舍弃小数部分,所以结果是0而不是0.5。用0去乘任何数,结果自然都是0。
修正后的代码如下:
#include <iostream> using namespace std; int main() { int base, height; // 改用double类型存储面积,避免整数截断 double area; cout << "Enter the base: "; cin >> base; cout << "Enter the height: "; cin >> height; // 用0.5代替1/2,确保浮点运算 area = 0.5 * base * height; cout << "The area is: " << area << endl; }
内容的提问来源于stack exchange,提问作者Takahan Nft
相关产品推荐
相关产品推荐

