Я пытаюсь создать простую программу, которая позволяет мне отображать общий балл после того, как пользователь ввел количество успешных ударов, totalHits
, умножив этот вход с постоянной переменной POINTS
в результате в другой переменной; score
.Постоянная переменная, умноженная на пользовательский ввод
Я не думаю, что создание такой программы было бы проблемой, но, как обычно, я был неправ. Когда я запускаю программу score
всегда случайный, даже если я ввожу '1', как totalHits
каждый раз. Он может отличаться от 444949349 до -11189181, чтобы назвать несколько примеров. Я понятия не имею, что я сделал неправильно, поэтому было бы здорово, если бы кто-то мог бы дать мне ключ к пониманию того, что делать дальше :)
Вот код:
#include <iostream>
using namespace std;
int main()
{
const int POINTS = 50;
int totalHits;
int score = totalHits * POINTS;
cout << "Please enter the ammount of successful hits: ";
cin >> totalHits;
cout << "You hit " << totalHits << " targets, and your ";
cout << "score is " << score << " ." << endl;
cin.ignore(cin.rdbuf()->in_avail() + 2);
return 0;
}
Большое спасибо KerrekSB и Паддид за то, что он дал мне правильный ответ. Вот готовый код с комментариями:
#include <iostream>
using namespace std;
int main()
{
const int POINTS = 50;
int totalHits;
cout << "Please enter the ammount of successful hits: ";
cin >> totalHits;
cout << "You hit " << totalHits << " targets, and your ";
/*As you can see I moved the line below from the top of the code.
The problem was I had not properly learned how C++ executes the code.
The orignal code was written in a way that calculates `score` before
the user could decide it's value, resulting in a different total score than
it should have been. In the finished code, the user inputs what
value `totalHits` is, THEN score is calculated by using that value. */
int score = totalHits * POINTS;
cout << "score is " << score << " ." << endl;
cin.ignore(cin.rdbuf()->in_avail() + 2);
return 0;
}
C++ выполняются в порядке, одно заявление в то время. C++ является обязательным, а не декларативным. Вы хотели написать HTML? –
@KerrekSB Eh, no: S Предполагается, что это программа на C++. Вы говорите, что я должен переместить некоторые из моих строк? – Rezic
Да, хотя я должен сказать, что это очень странный вопрос. Я имею в виду, я могу видеть, о чем вы, возможно, думали, но это совсем не так, как работает C++: -S Один оператор за раз, и каждое утверждение последовательно изменяет состояние мира ... –