Я неправильно понимаю, как работает переменная? - PullRequest
0 голосов
/ 07 мая 2020

enter image description here

Здравствуйте. Я новичок в C ++ и программировании в целом. Я пытаюсь укрепить свою уверенность, играя с небольшими компонентами, которые я уже понимаю, пока я не стану настолько знакомым, насколько это возможно, прежде чем изучать больше. Однако я озадачен и расстраиваюсь из-за того, что не могу заставить этот простой фрагмент кода работать. Я надеюсь, что тот, кто это прочитает, поймет, что я пытался сделать, и скажет мне, где я ошибся. пожалуйста и спасибо.

#include <iostream>

int main(int argc, const char * argv[]) {


    char computer[100];
    char something[100];



    double price;
    double price2;
    double total = (price + price2);
    double budget;
    if (budget < total){ double need = total - budget;}
    if (budget > total ){ double surplus = budget - total;}
    double perday = total / 365;
    double remain = budget - perday;
    int A;

    std::cout << "Please tell me, the 'name' of the new computer that you would like to buy.\n";
    std::cin >> computer;
    std::cout << " How much does this " << computer << " cost?\n";
    std::cin >> price;
    std::cout << "Cool! Now tell me something else you would like to buy.\n";
    std::cin >> something;
    std::cout << "How much does " << something << " cost?\n";
    std::cin >> price2;
    std::cout << "I need to know your technology budget:\n £";
    std::cin >> budget;


    if (budget >= total)
    {std::cout << "Wow you have enough cash to get both " << computer << " and " << something << "\n with a surplus budget of £" << surplus;}

    else (budget < total) {
    std::cout << "I am sorry you lack the necessary funds right now. \n";
    std::cout << "Would you like to hear a payment plan?\n 1 for yes / 2 for no \n";
    std::cin >> A;
    }

    if (A = 1) {
            std::cout << "If you wanted to buy both " << computer << " and " << something << " \n by this time next year, you could pay £" << perday << "each day from now\n ";
            std::cout << "If I take today's payment now, you will have £" << remain << "left of your budget";}
        else return 0;}
}

1 Ответ

2 голосов
/ 07 мая 2020

Прежде всего, объявление переменной в области видимости - плохая привычка, за исключением того, что вы планируете использовать эту переменную только в этой области.

if (budget < total){ double need = total - budget;}
if (budget > total ){ double surplus = budget - total;}

В этом случае need и surplus живут только между этими { } и не могут использоваться вне их. Если вы хотите использовать их позже в своей программе, убедитесь, что вы объявили их вне области видимости.

Еще я заметил, что оператор назначения = в языке программирования используется для добавления значения переменной. В вашем случае if (A = 1) не будет работать, потому что cpp не будет проверять, равно ли A 1, но назначит A равным 1. Что вам нужно сделать, так это проверить if (A == 1) с двойным == . Здесь можно найти операторов

Я предлагаю прочитать хорошую книгу для cpp и поправиться на этом пути.

Если вам интересно, вот рабочая версия вашей программы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...