Value在计算时总是返回0
Value always return 0 while calculating
我正在为我的主题做作业,在作业中,每个学生都被要求创建一个简单的c++程序。这里的问题是,当我没有为变量分配默认值时,将发生编译错误。然而,当我分配一个默认值(在本例中,value = 0)时,该值将始终为0。
我的问题是,有没有办法解决这个问题,而不遇到编译错误?
如果有一个类似的问题,你也可以,包括解决问题的链接,以及?非常感谢!
[Edit #1:对于那些想知道为什么代码"混乱"的人来说,我只使用了简单的命令,没有使用面向对象的组件,if/else语句等。创建的项目是由"简单代码"组成的。]
[Edit #2:这是我拍摄的输出显示:https://i.stack.imgur.com/FNzkD.png
总折扣费用部分应该显示数字而不是默认值0]
(Microsoft Visual Studio Pro 2013;c++)
期望输出显示:https://i.stack.imgur.com/UTAqK.png
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
/* Declare variables */
int qtyVehicleCar, qtyVehicleTaxi, qtyVehicleTruck; // User input
double feeOriginalCar, feeTotalOriginalCar, rateDiscountCar, feeTotalDiscountedCar, feeTotalAfterDiscountedCar; // variables for vehicle Car
double feeOriginalTaxi, feeTotalOriginalTaxi, rateDiscountTaxi, feeTotalDiscountedTaxi, feeTotalAfterDiscountedTaxi; // variables for vehicle Taxi
double feeOriginalTruck, feeTotalOriginalTruck, rateDiscountTruck, feeTotalDiscountedTruck, feeTotalAfterDiscountedTruck; // variables for vehicle Truck
double feeRepTotalOriginalFee, feeRepTotalDiscountedFee, feeRepTotalAfterDiscounted; // Generate final output
cout << "=====================================n";
cout << "=====================================n";
cout << "====== Malaysia Highway Company =====n";
cout << "=====================================n";
cout << "=====================================n";
cout << endl;
cout << "Enter quantity of the vehicles on 1st January 2014: " << endl;
cout << "Cartt:t";
cin >> qtyVehicleCar;
cout << "Taxitt:t";
cin >> qtyVehicleTaxi;
cout << "Trucktt:t";
cin >> qtyVehicleTruck;
/* Lay out the Report table */
cout << endl << endl << endl;
cout << "Reportn";
cout << "--------n";
cout << endl;
/* ============================== */
/* Declaration prior to process */
/* ============================== */
/* The problematic part
feeTotalDiscountedCar = 0;
feeTotalDiscountedTaxi = 0;
feeTotalDiscountedTaxi = 0;
*/
// Prices
feeOriginalCar = 2.00;
feeOriginalTaxi = 1.00;
feeOriginalTruck = 3.50;
feeTotalOriginalCar = feeOriginalCar * qtyVehicleCar;
feeTotalOriginalTaxi = feeOriginalTaxi * qtyVehicleTaxi;
feeTotalOriginalTruck = feeOriginalTruck * qtyVehicleTruck;
// In percentage
rateDiscountCar = 2;
rateDiscountTaxi = 10;
rateDiscountTruck = 15;
feeTotalAfterDiscountedCar = (rateDiscountCar/100) * feeTotalOriginalCar;
feeTotalAfterDiscountedTaxi = (rateDiscountTaxi/100) * feeTotalOriginalTaxi;
feeTotalAfterDiscountedTruck = (rateDiscountTruck/100) * feeTotalOriginalTruck;
// Final total - to be displayed
feeTotalAfterDiscountedCar = feeTotalOriginalCar - feeTotalAfterDiscountedCar;
feeTotalAfterDiscountedTaxi = feeTotalOriginalTaxi - feeTotalAfterDiscountedTaxi;
feeTotalOriginalTruck = feeTotalOriginalTruck - feeTotalAfterDiscountedTruck;
feeRepTotalOriginalFee = feeTotalOriginalCar + feeTotalOriginalTaxi + feeTotalOriginalTruck;
feeRepTotalDiscountedFee = feeTotalDiscountedCar + feeTotalAfterDiscountedTaxi + feeTotalAfterDiscountedTruck;
feeRepTotalAfterDiscounted = feeRepTotalOriginalFee - feeRepTotalDiscountedFee;
/* ================= */
/* Declaration END */
/* ================= */
/* Gives the following variables a default value, they will be modified later by the program */
feeTotalAfterDiscountedTruck = 0;
feeTotalDiscountedTruck = 0;
/* Processes */
cout << "Itemtttt" << "Cart" << "Taxit" << "Truckt" << endl;
cout << "------------------------------------------------------n";
cout << "Original feettt" << "RM " << feeOriginalCar << "t" << "RM " << feeOriginalTaxi << "t" << "RM " << feeOriginalTruck << endl;
cout << "Quantityttt" << qtyVehicleCar << "t" << qtyVehicleTaxi << "t" << qtyVehicleTruck << endl;
cout << "Total original feett" << "RM " << feeOriginalCar << "t" << "RM " << feeOriginalTaxi << "t" << "RM " << feeOriginalTruck << endl;
cout << "Discount ratettt" << rateDiscountCar << "%t" << rateDiscountTaxi << "%t" << rateDiscountTruck << "%t" << endl;
cout << "Total discounted feett" << "RM " << feeTotalDiscountedCar << "t" << "RM " << feeTotalDiscountedTaxi << "t" << "RM " << feeTotalDiscountedTruck << endl;
cout << "Total after discounted feet" << "RM " << feeTotalAfterDiscountedCar << "t" << "RM " << feeTotalAfterDiscountedTaxi << "t" << "RM " << feeTotalAfterDiscountedTruck << endl;
cout << endl;
/* Displays output */
cout << "Total original feett:t" << "RM " << feeRepTotalOriginalFee << endl;
cout << "Total discounted feett:t" << "RM " << feeRepTotalDiscountedFee << endl;
cout << "Total after discounted feet:t" << "RM " << feeRepTotalAfterDiscounted << endl;
cout << endl << endl;
/* Displays end line */
cout << "------------------- End of Program -------------------" << endl;
system("PAUSE");
return 0;
}
未初始化变量警告可能意味着(1)您忘记初始化某些东西或(2)您认为您初始化了它但没有。在我看来,在这种情况下,这是第二个问题。你的变量名混淆了。
例如,feeTotalAfterDiscountedCar = (rateDiscountCar/100) * feeTotalOriginalCar;
feeTotalAfterDiscountedTaxi = (rateDiscountTaxi/100) * feeTotalOriginalTaxi;
feeTotalAfterDiscountedTruck = (rateDiscountTruck/100) * feeTotalOriginalTruck;
这些应该是折扣的金额,不是吗?那么,为什么要将它们存储在feeTotalAfterDiscountedSomething
而不是feeTotalDiscountedSomething
中呢?
相似的,
feeTotalAfterDiscountedCar = feeTotalOriginalCar - feeTotalAfterDiscountedCar;
feeTotalAfterDiscountedTaxi = feeTotalOriginalTaxi - feeTotalAfterDiscountedTaxi;
feeTotalOriginalTruck = feeTotalOriginalTruck - feeTotalAfterDiscountedTruck;
为什么第三个存储结果到feeTotalOriginalTruck
而不是feeTotalAfterDiscountedTruck
?(还请注意,如果您解决了上面的第一个问题,减法的rhs也需要更改)。
,
feeRepTotalDiscountedFee = feeTotalDiscountedCar + feeTotalAfterDiscountedTaxi + feeTotalAfterDiscountedTruck;
类似的问题。我相信,这些都应该是feeTotalDiscountedSomething
而不是feeTotalAfterDiscountedSomething
。
编译器正确地抱怨feeTotalDiscountedCar
和feeTotalDiscountedTaxi
未初始化。你需要在某个地方初始化它们。也许您希望用户像这样输入它们:
cout << "Discount Fee Total Taxi:";
cin >> feeTotalDiscountedTaxi;
cout << "Discount Fee Total Car:";
cin >> feeTotalDiscountedCar;
为什么在打印之前将它们设置为零?
feeTotalAfterDiscountedTruck = 0;
feeTotalDiscountedTruck = 0;
它将显示错误,因为您试图使用变量而没有初始化它。
- (C++)分析树以计算返回错误值的简单算术表达式
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 为什么是谷神星协方差.计算()似乎永远运行而不返回?
- 始终在 C++ 计算脚本中返回466750944
- imageLoad glsl 在计算着色器 OpenGL 4.3 中始终返回 0
- 返回一个计算了参数的函数
- 计算BST返回-1的高度混淆
- 我正在尝试创建一个布尔函数,该函数计算字符并在字符为"()*-+"时返回 true
- 计算 <Classtype*> 向量中所有项的布尔值的最有效方法,如果全部为真则返回 true
- 递归计算满足条件的值数并返回该数字
- 从捕获 constexpr 函数返回值的变量中删除 constexpr 会删除编译时计算
- 我正在尝试编写一个简单的计算程序,但答案一直返回为 0
- 为什么当我尝试计算平均绝对偏差时,我的程序返回 inf
- 为什么这个计算二进制搜索树中节点的递归函数总是返回比预期更大的结果
- 计算每秒添加到队列中添加的请求数 - 始终返回为零
- CSV文件中的两条线的交点的计算返回-1.#IND
- friend get 函数,返回通过可变参数模板递归计算的类型
- 创建一个函数,该函数根据边缘转换为给定(浮点)时间值计算布尔返回值
- 如何在递归函数中计算返回结果
- 如何计算并返回指向max元素的指针的值?C++