簡體   English   中英

為什么加法輸出總是0?

[英]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() ab 這不是真的。

您正在按值傳遞這些變量。 如果要修改它們,則必須通過指針或引用傳遞它們。

預期的行為將通過將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM