[英]Why does the addition output always 0?
#include <iostream>
int getValueFromUser()
{
std::cout << "Enter An Integer !" << '\n';
int valueTyped{};
std::cin >> valueTyped;
return valueTyped;
}
void _double(int valueToBeMultiplied)
{
std::cout << "Doubled Is :"<<'\n' << valueToBeMultiplied * 2 << '\n';
}
void add(int x, int y)
{
std::cout << "=" << x + y;
}
int typeInteger(int x)
{
std::cout << "Enter Your Number" << '\n' << '\n';
std::cin >> x;
return x;
}
int main()
{
_double(getValueFromUser()); // Use the () double on the return value of the getValueFromUser()
int a{}, b{};
std::cout << "To Add Two Numbers :" <<'\n';
typeInteger(a);
typeInteger(b);
add(a , b);
return 0;
}
乘法工作正常,但加法,無論我輸入什么數字總是打印 0。 為什么會發生? 我該如何解決?
typeInteger()
定義不適合獲取值。 從typeInteger()
返回后,您應該將值保存到a,b
變量中。 請參考這個。
int getInputValue(){
int x;
std::cout << "Enter Your Number" << '\n' << '\n';
std::cin >> x;
return x;
}
a = getInputValue();
b = getInputValue();
add(a , b);
您假設通過修改提供給typeInteger()
的輸入變量,您也在更改main()
a
和b
。 這不是真的。
您正在按值傳遞這些變量。 如果要修改它們,則必須通過指針或引用傳遞它們。
預期的行為將通過將int typeInteger(int x)
更改為int typeInteger(int &x)
。
為什么加法輸出總是0?
因為您總是將零作為參數傳遞:
int a{}, b{}; // <-- zero initialisation
...
add(a , b); // <-- zeroes passed here
要修復它,請傳遞除零以外的其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.