#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;
}
Sto provando a creare un piccolo programma che calcola il numero di cifre di un determinato numero.
Ogni volta che digito numeri come 200
, i risultati previsti sono 3
. Invece ho ottenuto 7963
. Quando inserisco un breakpoint sulla linea number_placement
, ho ottenuto un valore predefinito di 7961
, il che è strano perché quel valore non è stato assegnato da nessuna parte nel codice.La variabile ha valore senza essere assegnata C++
Puoi spiegare perché ho ottenuto questo risultato?
'int number_placement = 0;' Non lo si inizializza mai, quindi inizia con un valore non valido. – BoBTFish
Questa è solo una memoria allocata non programmata per i rifiuti inutili, senza valori espliciti assegnati verrà inizializzata su immondizia – EdChum
Come ha sottolineato BobTFish, non si inizializza mai la variabile, quindi cosa ci si aspetta qui? – EdChum