0
I want to get the each digit (like units digit, hundreds digit...) of an integer, So I write a code. why it always gets wrong?
sorry I am not good at english. here's my code: #include <iostream> using namespace std; int main() { int X; int a[] = {}; int i = 0; cin >> X; for(;X != 0;i++){ a[i] = X % 10; X = X /10; cout << a[i]; } return 0; }
2 ответов
+ 2
You first need to declare array with it's size specified.
int a[32]; //can store 32 elements
syntax:
datatype array_name[size];
int a[]={} means you are not specifying size explicitly. Therefore number of elements that array can store is limited to number of elements with which it was initialized , here 0.
{} no elements in curly braces so it can store only 0 elemements. you can't later increase its size, arrays are not resizeable.
C++ won't check for array bounds and let you use any index you wan't so be carefull.
either specify size of array or you can try with std vector instead of array.
https://en.cppreference.com/w/cpp/container/vector
Good luck.
+ 1
🇮🇳Omkar🕉 Thank you very much! I've thought for this since yesterday, now I success!!