#include <iostream>
#include <string>
using namespace std;
int count_number_place(int number)
{
int number_placement;
while (number >= 1)
{
number_placement++;
cout << number_placement <<endl;
number/=10;
}
return number_placement;
}
int main(int argc, const char * argv[])
{
// insert code here...
int user_input_number;
cout << "Please enter your number here" << endl;
cin >> user_input_number;
cout << "User input number is "<< user_input_number <<endl;
cout << "The numbers of digits in the input number is :" << count_number_place(user_input_number) << endl;
return 0;
}
Próbuję utworzyć mały program, który oblicza liczbę cyfr danej liczby.
Zawsze, gdy piszę w liczbach takich jak 200
, oczekiwane wyniki to 3
. Zamiast tego dostałem 7963
. Kiedy umieściłem punkt przerwania na linii number_placement
otrzymałem domyślną wartość 7961
, co jest dziwne, ponieważ ta wartość nie została nigdzie przypisana w kodzie.Zmienna ma wartość bez przypisania C++
Proszę wyjaśnić, dlaczego dostałem taki wynik?
'int number_placement = 0;' Nigdy go nie zainicjalizuj, więc zaczyna się od wartości śmieci. – BoBTFish
To tylko nieintelizowana pamięć przydzielona do stosu śmieci bez jawnie przypisanych wartości zostanie zainicjowana do śmieci – EdChum
Jak BobTFish zwrócił uwagę, że nigdy nie inicjalizujesz zmiennej, więc czego się tutaj spodziewasz? – EdChum