c++ - 为什么程序不能正确计算值?
问题描述
我有一个任务。我需要评估表达式:
w = (3x + 6x + 9x ... + 90x) -15 , x = 0.03
此表达式的计算应使用 while 循环进行。
我编写了程序代码,但我得到的印象是它不能正常工作。
请查看我的代码是否正常工作?我很没有经验=(
double x = 0.03;
double w, sum;
int counter1 = 0;
while (counter1 <= 90) {
counter1 += 3;
w = counter1 * x;
sum = sum + w;
}
sum = sum - 15;
cout << "Calculation result, w =: " << sum << endl;
解决方案
您的问题是第一次通过循环:
sum = sum + w;
sum
未初始化,因此它可以包含任何垃圾。
您应该始终初始化变量:
double sum = 0;
另外,正如@foreknownas_463035818 评论的那样,您的循环太过分了:
while (counter1 <= 90) {
counter1 += 3;
...
你的最后一个任期将93 * x
不是90 * x
你想要的。
所以应该是:
while (counter1 < 90) {
counter1 += 3;
...
推荐阅读
- javascript - 存根:对具有不同主体的相同 URL 的存根 PUT 请求
- python - 从 github 安装程序时出错
- python - 将聚类结果绘制为网络图并将其可视化
- java - 我正在制作一个随机昵称生成器,如何从文件中随机选择一个单词?
- powershell - Powershell从多行的数组中计算总数
- casting - db2中的CONVERT或CAST,如何将列从char转换为十进制
- android - 从谷歌地图获取带有标记的位置图像(免费)
- angularjs - 为什么 ng-show、ng-hide 和 ng-init 甚至不起作用
- rust - 如何实现分层特征?
- python - 为什么我的 Scikit-Learn 线性回归模型仅适用于某些随机状态?