#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;
}
Belirli bir sayının basamak sayısını hesaplayan küçük bir program oluşturmaya çalışıyorum.
200
gibi sayıları yazdığımda beklenen sonuç 3
. Onun yerine 7963
aldım. number_placement
satırında bir kesme noktası koyduğumda, varsayılan değeri 7961
aldım, bu da garip çünkü bu değer kodun herhangi bir yerine atanmadı.Değişken, atanan değere sahip değil C++
Bu sonucu neden aldığımı açıklayabilir misiniz?
'int number_placement = 0;' Hiçbir zaman başlatılamıyorsunuz, bu yüzden bazı çöp değerleriyle başlıyor. – BoBTFish
Sadece atanmamış değerler olmadan atanan belleğe atanmamış çöp yığını, – EdChum
çöpüne başlayacaktır BobTFish, değişkeni hiçbir zaman başlatılamayacağına işaret ettiğinden, burada ne bekliyorsunuz? – EdChum