I want to know why I need to mention int x in my loop in order to run program, because I tought that it already remember int x from my previous function with that parametar, and purpose of this program is to print results for unlimited inputs.
It's two different variables that happen to have the same name.
You can pass any int value to score, the name doesn't matter, it doesn't even have to be a variable.
1 2 3 4 5
int x = 1;
score(x); // calls score with the value 1.
int y = 2;
score(y); // calls score with the value 2.
score(3); // calls score with the value 3.
x inside score holds the value that was passed to the function. It only exists for as long as the function runs and it cannot be accessed from outside the function.