#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;
}
Ich versuche, ein kleines Programm zu erstellen, das die Anzahl der Ziffern einer bestimmten Zahl berechnet.
Immer wenn ich Zahlen wie 200
eintippe, sind die erwarteten Ergebnisse 3
. Stattdessen habe ich 7963
. Als ich einen Haltepunkt an der Linie number_placement
setzte, erhielt ich einen Standardwert von 7961
, der seltsam ist, weil dieser Wert nirgends im Code zugewiesen wurde.Variable hat Wert, ohne zugewiesen zu werden C++
Können Sie bitte erklären, warum ich das Ergebnis bekomme?
'int number_placement = 0;' Sie initialisieren es nie, daher beginnt es mit einem Wert für den Wert "Müll". – BoBTFish
Das ist nur unintialized Müll Speicher zugewiesenen Speicher ohne explizite zugewiesene Werte werden auf Müll initialisiert werden – EdChum
Wie BobFish hat darauf hingewiesen, dass Sie die Variable nie initialisieren, also was erwarten Sie hier? – EdChum