在C++中查找两个项目之间的差异时出错
Trouble finding differential between two items in C++
让我在前面说,我对C++还很陌生,希望尽可能简单。我的数学也很差。
大多数情况下,我想看看是否有人能帮助我的代码,这样它总是能给出正确的结果。除了一种情况外,我大部分时间都是想做什么就做什么。
我的代码试图找出某人购买了多少包热狗堰和多少包热狗包。然后它告诉用户他们可以用它做多少热狗,以及他们会有多少剩下的汉堡或小圆面包。假设一包堰包含12个,一包面包包含8个,这就是我到目前为止所想到的:
#include <iostream>
#include <cmath>
using namespace std;
void hotdog(int a, int b){ //a = weiner packages, b = bun packages
int weiners = 12 * a;
int buns = 8 * b;
int total = (weiners + buns) - (weiners - buns);
int leftOverWeiners = total % weiners;
int leftOverBuns = total % buns;
int totalHotDogs = total / 2;
cout << "You can make " << totalHotDogs << " hotdogs!" << endl;
if (leftOverWeiners > 0){
cout << "You have " << leftOverWeiners << " weiners left over though." << endl;
}else if (leftOverBuns > 0){
cout << "You have " << leftOverBuns << " buns left over though." << endl;
}
}
int main(){
int a;
int b;
cout << "Let's see how many hotdogs you can make!" << endl;
cout << "How many weiner packages did you purchase?: ";
cin >> a;
cout << "How many bun packages did you purchase?: ";
cin >> b;
hotdog(a, b);
return 0;
}
有了这个,如果面包和堰的比例相同,或者堰比面包多,我总能得到正确的答案。
由于我设置total和/或leftOverBuns的方式(第9行、第11行),我永远不会得到剩余面包数量的正确答案。我知道,如果不是修改我当前代码的方法,一定有一种更简单的方法可以做到这一点,但我被难住了。
我知道我留下了几乎为零的符号,所以如果你想要一些,请告诉我!
你把它搞得太复杂了。试试这个:
if(weiners > buns)
{
cout << "You can make " << buns << " hotdogs!" << endl;
cout << "with " << weiners-buns << " weiners left over" << endl;
return;
}
cout << "You can make " << weiners << " hotdogs!" << endl;
if(buns > weiners)
{
cout << "with " << buns-weiners << " buns left over" << endl;
}
{buds,weiners}中较小的是热狗的数量,if-then块决定函数是否会报告剩余的buds或weiners。
#include <iostream>
void hotdog( int weinerspackages, int bunspackages ){
const int weinersPerPackage = 12;
const int bunsPerPackage = 8;
const int totalweiners = weinerspackages * weinersPerPackage;
const int totalbuns = bunspackages * bunsPerPackage;
int leftoverweiners = 0;
int leftoverbuns = 0;
int amountOfHotdogs = 0;
if( totalweiners > totalbuns ){
leftoverweiners = totalweiners - totalbuns;
amountOfHotdogs = totalbuns;
leftoverbuns = 0;
}
else if( totalbuns > totalweiners ){
leftoverbuns = totalbuns - totalweiners;
amountOfHotdogs = totalweiners;
leftoverweiners = 0;
}
else{
amountOfHotdogs = totalweiners;
leftoverweiners = 0;
leftoverbuns = 0;
}
std::cout << "You can make: " << amountOfHotdogs << " Hotdogs" << std::endl;
std::cout << "Leftover Weiners: " << leftoverweiners << " || Leftover Buns: " << leftoverbuns << std::endl;
}
int main(){
int PackagesW = 8;
int PackagesB = 12;
hotdog( PackagesW, PackagesB );
system("pause");
return 0;
}
注意:可以用更少的变量来实现这一点,我声明了这么多变量,以便更容易理解数字所代表的内容。
假设制作热狗只需要其中一种,你就可以找到你拥有的成分最少,而你能制作的热狗数量将受到该成分数量的限制,这就是为什么amountOfHotdogs
取较小成分的值。如果两者的量相等,则amountOfHotdogs
可以取其中任何一个的量。
只有量较大的成分才会有剩菜,因此当totalweiners > totalbuns
时为leftoverweiners = totalweiners - totalbuns;
,反之亦然。
相关文章:
- Visual Studio 中静态库项目之间的未解析外部
- 在VS2017中,我们如何在项目成员之间共享编译设置
- 如何使Visual Studio 2017 C++项目在计算机之间更具可移植性
- OpenGL GLFW GLAD 在项目之间共享 Visual C++.
- 安卓项目中 jni 和 cpp 包之间的区别
- CPP项目中.fdf和.h文件之间的差异
- 使用 .depends 指定 SUBDIRS 项目之间的依赖关系不起作用
- 在同一解决方案中的项目之间传递 CStrings
- 在Xamarin.Forms和QT项目之间共享常见代码
- 警告MSB3270:项目的处理器体系结构之间的不匹配
- 在项目之间共享类,同时绕过stdafx.h依赖关系
- 如何使用Bamboo CI处理C++CMake项目之间的依赖关系
- QTreeWidget使用拖放在两个项目之间插入
- 同一项目中两个类之间的visual c++LNK2019错误
- 在单声道项目和 C++ 控制台应用之间传输数据
- 在两个解决方案之间共享项目
- 在C++项目和C#项目之间传递指针,而不在C#项目上使用unsafe
- qtmake-两个项目/目标之间的共享资源
- C++/C在Visual Studio中的两个项目之间共享全局变量
- 项目之间的 C++ 标头