讓我通過說我仍然對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)'。 –