2017-01-09 5 views
-3

誰もがプログラムでエラーを見つけることができます。 私は逆の方法で配列の要素を印刷したいのですが、プログラムの実行後にエラーが出るので、誰でも助けてくれます。逆配列で配列の要素を印刷するエラーを取得します.- java

int i,n; 
Scanner in=new Scanner(System.in); 
System.out.print("Enter range- "); 
n=in.nextInt(); 
int ar[] = new int[n]; 
for(i=0;i<=n;i++) 
{ 
    i=in.nextInt(); 
    ar[i]=in.nextInt(); 
} 
for(i=n-1;i>0;i--) 
{ 
    System.out.print("Enter elements" +ar[i]); 
} 
+0

を置くため

も逆の順序で配列の値を印刷するforループで、それはあなたが取得しているエラーは何ですか配列の最初のインデックス値を印刷しないのだろうか? –

+0

エラーは何ですか?そのエラー(または例外)は何かを伝えますか?デバッグを試みましたか? – NewUser

+0

'n'次元配列に' n'要素はありません。最大で「n-1」まで。 – RealSkeptic

答えて

1

iあなたのループ変数である、(ユーザー入力で)ループ内iを変更しないでください。また、配列は01ではない)から始まります。だから、

for(i=0;i<n;i++) 
{ 
    // i=in.nextInt(); 
    ar[i]=in.nextInt(); 
} 
System.out.println("Entered elements"); 
for(i=n-1;i>=0;i--) 
{ 
    System.out.print(ar[i] + " "); 
} 
System.out.println(); 
+0

の範囲外にあり、最初のループの条件は 'n'セルがないので' i AxelH

0

は、あなたのプログラム内のいくつかのミスがあります:最初の

2番目のあなたは各ユーザーの入力にi値を割り当てるだけで、forループ

にプログラムの初めにiを宣言するために持っていけませんforループの反復処理i=in.nextInt();

ループの場合は、ループi <= nには、必要なサイズ以上の配列に追加要素が割り当てられます。あなたが条件i > 0;

int n; 
Scanner in=new Scanner(System.in); 
System.out.print("Enter range- "); 
n=in.nextInt(); 
int ar[] = new int[n]; 
for(int i=0;i<n;i++) 
{ 
    ar[i]=in.nextInt(); 
} 
for(int i=n-1;i>=0;i--) 
{ 
    System.out.print("Enter elements" +ar[i]); 
} 
+0

それは私がそれを行うだろう – Matrix