2017-06-08 8 views
1

数字を数字の配列に変換するのに少し問題があります。数字を桁の配列に変換する

#include <iostream> 

using namespace std; 

int main() 
{ 
    int a[11]; 
    int number; 
    cin >> number; 
    for (int i = 10; i >= 0; i--) 
    { 
     a[i] = number%10; 
     number = number/10; 
    } 
for (int i = 0; i < 11; i++) 
     cout << a[i]; 
cout << endl; 
} 

入力した番号を取得する代わりに、ランダムな数字が表示されます。入力した数字が9桁以下の場合、この問題は発生しません。

+0

を使用すると、int型の最大サイズについて考えたことがありますか? –

+0

あなたは正しいです、intサイズは十分ではありません、ありがとう:) –

答えて

0

私は配列を初期化することをお勧めしますがやってsomethinglike(良い習慣です):

int a[11] = {-1}; 

、あなたは配列の各要素を印刷した後改行文字を追加した場合、それは意味のあると読みやすくなります実際などの入力のための

#include <iostream> 

using namespace std; 

int main() 
{ 
    int a[11] = {-1}; 
    int number; 
    cin >> number; 
    for (int i = 10; i >= 0; i--) 
    { 

     a[i] = number % 10; 
     number = number/10; 
    } 
    for (int i = 0; i < 11; i++) 
     cout <<"@[" <<i<<"]: "<< a[i] <<endl; 
    cin.get(); 
} 

を期待どおりコードが機能している...

あなたは出力を得る:

enter image description here

+0

私は知っていますが、問題は9桁以上の数字で発生しました - 今はint "number"サイズが小さすぎることを知っています。助けてくれてありがとう。 :) –

+0

こんにちは@Paweł...フィードバックに感謝...私はそれを確認してください! –

関連する問題