我有下面的代码,用户必须在数组中输入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] + ' ');
}
}
}
这是我的意见:
1
2
3
4
5
我得到的输出是:
33
34
35
36
37
请让我知道我哪里出错了,我该如何解决这个问题。
答案 0 :(得分:7)
更改
System.out.println(arr[i] + ' ');
到
System.out.println(arr[i]);
或
System.out.println(arr[i] + " ");
当您打印arr[i] + ' '
时,首先将表达式评估为添加int
和char
(空格字符的整数值,即32),以及只有这样才能打印出结果整数。因此,当以这种方式打印时,数组中的所有整数都会偏移32。
答案 1 :(得分:2)
' '
具有ascii代码32.当您使用arr[i] + ' '
时,将第二个操作数转换为整数并添加到第一个操作数。
答案 2 :(得分:1)
在ASCII space
中char值为32(十进制),char实际上是一个整数值。它会被添加到你的int值并提供输出。
System.out.println(arr[i]);
和
System.out.println(arr[i]+" ");
将解决问题。