让我通过说我仍然对C++非常陌生并希望尽可能简单。我在数学上也很糟糕。找不到C++中两个项目之间的差异
大多数情况下,我正在查看是否有人能够帮助我的代码,因此它总是会给出正确的结果。除了在一种情况下,我主要是通过它来做我想做的事情。
我的代码试图找出有多少热狗weiners软件包以及某人购买了多少热狗包。然后它会告诉用户他们可以制作多少热狗,以及他们会有多少剩菜或小面包。假设一个包weiners包含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;
}
有了这个,我总能得到正确的答案,如果包子到weiners比例是相同的,或者如果面包比面包更多。
由于我设置了总数和/或leftOverBns(第9,11行)的方式,因此我将永远无法得到有多少剩余小包的正确答案。我知道,如果不是修改我当前的代码的方法,我必须有一个更简单的方法来做到这一点,但我很难过。
我知道我留下了几乎零符号,所以如果你想要一些请让我知道!
不是int'total =(weiners + buns) - (weiners - buns);'与'int total = 2 * buns'一样?你在那做什么? –
@ShripathiKamath 我一直在弄乱那段代码一段时间,我猜。本来这只是: 'INT总和= weiners +包子;' 所以,是的,它是等价的: 'INT总= 2 *包子;' – Robble
在我看来,是什么在这里失踪的事实你受到两项物品中较小的一项的限制。即类似'int number_of_hotdogs_i_can_make = std :: min(weiners,buns)'。 –