#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;
}
Tôi đang cố gắng tạo một chương trình nhỏ tính số chữ số của một số đã cho.
Bất cứ khi nào tôi nhập các số như 200
kết quả mong đợi là 3
. Thay vào đó, tôi nhận được 7963
. Khi tôi đặt điểm ngắt tại dòng number_placement
, tôi nhận giá trị mặc định là 7961
, điều này thật lạ vì giá trị đó không được chỉ định ở bất kỳ đâu trong mã.Biến có giá trị mà không được gán C++
Bạn có thể giải thích tại sao tôi nhận được kết quả đó không?
'int number_placement = 0;' Bạn không bao giờ khởi tạo nó, do đó, nó bắt đầu với một số giá trị rác. – BoBTFish
Đó chỉ là bộ nhớ phân bổ rác không được phân loại mà không có giá trị được gán rõ ràng sẽ được khởi tạo vào thùng rác – EdChum
Vì BobTFish đã chỉ ra rằng bạn không bao giờ khởi tạo biến nên bạn mong đợi điều gì ở đây? – EdChum