与输入相比,数组输出出错

use*_*094 1 java

我有下面的代码,用户必须在数组中输入5个值,并打印出相同的代码.

package Arrays;

import java.util.Scanner;

public class Arrays {
    public static void main(String[] args) {
        final int size=5;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the 5 number you want to be stored in an array");
        int a[] =new int[size];
        for(int i=0;i<a.length;i++){
            a[i]=input.nextInt();
        }           
        displayArray(a);
        sumOfArray();
        productOfArray();
        smallAndLargeOfArray();
        averageOfArray();
    }

    private static void displayArray(int arr[]) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i] + ' ');
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的意见:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

33
34
35
36
37
Run Code Online (Sandbox Code Playgroud)

请让我知道我哪里出错了,我该如何解决这个问题.

Era*_*ran 7

更改

System.out.println(arr[i] + ' ');
Run Code Online (Sandbox Code Playgroud)

System.out.println(arr[i]);
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println(arr[i] + " ");
Run Code Online (Sandbox Code Playgroud)

在打印时arr[i] + ' ',首先将表达式计算为a int和a 的加法char(空格字符的整数值,即32),然后才打印结果整数.因此,当以这种方式打印时,数组中的所有整数都会偏移32.