不理解为什么代码没有产生所需的答案
Not understanding why code isn't producing desired answer
我接到的任务是让我找出在一定长度内可以放置多少棵树,以及它们将占用多少总空间,包括树之间所需的空间。感谢一些帮助,我已经能够使树总数正确,但占用的总空间不正确。我能做些什么来解决这个问题。
输入为:长度 = 10,TRadius = .5,ReqSpace = 3
期望的输出为:树到=2 总空间应为 1.57
实际输出为:树到=2,总空间为6.1
这是我正在使用的代码。
#include <iostream>
#include <iomanip>
using namespace std;
const double PI = 3.14;
int main()
{
double length;
double TRadius;
double ReqSpace;
int TreeTot = 0;
cout << "enter length of yard: ";
cin >> length;
cout << "enter radius of a fully grown tree: ";
cin >> TRadius;
cout << "required space between fully grown trees: ";
cin >> ReqSpace;
while (length > TRadius * 2 + ReqSpace) {
TreeTot += 1;
length -= (TRadius * 2) + ReqSpace;
}
cout << "The total space taken up is ";
cout << setprecision(2) << TreeTot * TRadius * PI + ReqSpace << endl;
cout << "The total amount of trees is ";
cout << TreeTot;
return 0;
}
这两行:
TreeTot + 1;
length - (TRadius * 2) + ReqSpace;
是有效的语句,但它们只是表达式。你计算一个值,但不对它做任何事情。TreeTot + 1
......然后呢?您需要将计算值分配给某些东西。大概您想增加TreeTot
并降低length
。只需像这样分配值:
TreeTot = TreeTot + 1;
length = length - (TRadius * 2) + ReqSpace;
或者使用速记来修改结果并将其分配给相同的值:
TreeTot += 1;
length -= (TRadius * 2) + ReqSpace;
你的答案可能仍然是错误的,因为 if 语句只运行一次 - 你永远不会告诉它你希望它多次执行代码。如果将if
更改为while
则代码将循环,直到length
太小而无法满足条件。
相关文章:
- 为什么C++程序在太大时返回代码而不是答案?
- 不理解为什么代码没有产生所需的答案
- 为什么我在代码厨师的 CMPRSS 问题中得到 WA(错误答案)?
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 为什么可变大小的数组会导致Codechef出现错误答案
- 为什么在此代码中使用 auto 和 int 给出不同的答案?
- 使用分而治之的最大总和子数组,为什么要以不同的方式使用 for 循环,答案是错误的?
- 为什么当我从语句检查中删除"+ mod"时,以下程序给出错误的答案。问题链接:https://www.codechef.com/problems/FFC219B
- 为什么在C++算术函数中加".0"会给出小数点的答案?
- 为什么返回语句和打印语句返回不同的答案?
- 为什么这两种输出样式给出不同的答案
- 为什么存储在变量中的值比原始答案少 1?
- 为什么回溯解决方案给出错误的答案
- 为什么将浮点变量与另一个浮点变量的缩减为int给出了完全不同的答案
- 一个带有参数的程序,为什么此程序有错误的答案
- 为什么 while (cout << A[--N] << && N) 和 while (cout << A[--N] << ) 给了我两个不同的答案,这
- 为什么答案不会显示
- 为什么我的函数返回一个整数,尽管我已经将答案指定为浮点数
- 将当前时间 simTime.dbl() 与以前存储的双精度值进行比较并不总是给出正确的答案......为什么?
- 如果通过循环求和,下面的程序会找到正确的答案,但如果通过GP的公式求和,则会找到不正确的答案.为什么