Java 数组倒序输出
我写了一个小的用数组实现倒序输出的程序,但是不知道怎么回事,总是显示有错误,哪位高手帮忙看看我错在哪里。谢谢!importjava.util.*;publicclassA...
我写了一个小的用数组实现倒序输出的程序,但是不知道怎么回事,总是显示有错误,哪位高手帮忙看看我错在哪里。谢谢!
import java.util.*;
public class Array {
public static void main(String[] args){
System.out.print("请输入5个数字: ");
Scanner stdin = new Scanner(System.in);
String sc = stdin.next();
String []A = sc.split(" ");
String []result = null;
for(int i=A.length; i>=0; i--){
for(int j=0;j<A.length;j++){
result[j]=A[i];
}
}
System.out.print("倒序输出: ");
for(int k=0; k<result.length;k++){
System.out.print(result[k]);
}
}
} 展开
import java.util.*;
public class Array {
public static void main(String[] args){
System.out.print("请输入5个数字: ");
Scanner stdin = new Scanner(System.in);
String sc = stdin.next();
String []A = sc.split(" ");
String []result = null;
for(int i=A.length; i>=0; i--){
for(int j=0;j<A.length;j++){
result[j]=A[i];
}
}
System.out.print("倒序输出: ");
for(int k=0; k<result.length;k++){
System.out.print(result[k]);
}
}
} 展开
2个回答
推荐于2017-09-13
展开全部
System.out.print("请输入5个数字: ");
Scanner stdin = new Scanner(System.in);
int[] A = new int[5];
for(int i=0;i<5;i++)A[i]=stdin.nextInt();
java.util.Arrays.sort(A);
System.out.print("倒序输出: ");
for (int k = A.length-1; k >= 0; k--) {
System.out.print(A[k]+" ");
}
你原来的代码太乱了,所以我自己写了。然后说说你代码的问题。
首先,你String sc = stdin.next(); 只是得到第一个空格前的东西,所以你不可能得到"1 2 3 4 5"这样带空格的字符串,要得到带空格的一行的话,请认准String sc = stdin.nextLine();谢谢~~
然后, String []result = null;只是声明了一个叫result的数组,还没给数组分配空间呢,所以请用 String []result = new String[5];来为数组分配空间。(为什么需要给数组分配空间呢?因为为了提高效率,数组的大小被定义为不变,于是需要你为其初始化大小,即通过new array_type[num]的形式来声明)
再者, for(int i=A.length; i>=0; i--)这行也有问题,数组大小比数组最大索引大1,因为数组是从0开始计数的。还有System.out.print(result[k]);这句,你连个分隔符都没有,到时候输出来的就成一连串的数字了,比如本来应该是12 13 17 34 54 的却成了1213173454,你叫人怎么看呢?
最后,你是不是要写冒泡啊?话说,你的冒泡也是猛了点吧。。四不像呢这是。。
PS:我偷懒用类库了,你们诅咒我被雷劈掉吧~~
Scanner stdin = new Scanner(System.in);
int[] A = new int[5];
for(int i=0;i<5;i++)A[i]=stdin.nextInt();
java.util.Arrays.sort(A);
System.out.print("倒序输出: ");
for (int k = A.length-1; k >= 0; k--) {
System.out.print(A[k]+" ");
}
你原来的代码太乱了,所以我自己写了。然后说说你代码的问题。
首先,你String sc = stdin.next(); 只是得到第一个空格前的东西,所以你不可能得到"1 2 3 4 5"这样带空格的字符串,要得到带空格的一行的话,请认准String sc = stdin.nextLine();谢谢~~
然后, String []result = null;只是声明了一个叫result的数组,还没给数组分配空间呢,所以请用 String []result = new String[5];来为数组分配空间。(为什么需要给数组分配空间呢?因为为了提高效率,数组的大小被定义为不变,于是需要你为其初始化大小,即通过new array_type[num]的形式来声明)
再者, for(int i=A.length; i>=0; i--)这行也有问题,数组大小比数组最大索引大1,因为数组是从0开始计数的。还有System.out.print(result[k]);这句,你连个分隔符都没有,到时候输出来的就成一连串的数字了,比如本来应该是12 13 17 34 54 的却成了1213173454,你叫人怎么看呢?
最后,你是不是要写冒泡啊?话说,你的冒泡也是猛了点吧。。四不像呢这是。。
PS:我偷懒用类库了,你们诅咒我被雷劈掉吧~~
展开全部
import java.util.Scanner;
public class Array {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[] ary1 = new int[5];
for(int i = 0; i < ary1.length ; i++){
System.out.println("请输入第"+(i+1)+"个数据");
ary1[i] = sc.nextInt();
}
System.out.println("第一组数据如下:");
for(int i = 0; i<ary1.length; i++ ){
System.out.print(ary1[i] + "\t");
}
System.out.println();
for(int i = 0; i < ary1.length/2 ;i++){
int temp ;
temp = ary1[i];
ary1[i] = ary1[ary1.length-1-i];
ary1[ary1.length-1-i] = temp;
}
System.out.println("倒序后数据如下:");
for(int i = 0; i < ary1.length ;i++){
System.out.print(ary1[i] + "\t");
}
System.out.println();
}
}
public class Array {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[] ary1 = new int[5];
for(int i = 0; i < ary1.length ; i++){
System.out.println("请输入第"+(i+1)+"个数据");
ary1[i] = sc.nextInt();
}
System.out.println("第一组数据如下:");
for(int i = 0; i<ary1.length; i++ ){
System.out.print(ary1[i] + "\t");
}
System.out.println();
for(int i = 0; i < ary1.length/2 ;i++){
int temp ;
temp = ary1[i];
ary1[i] = ary1[ary1.length-1-i];
ary1[ary1.length-1-i] = temp;
}
System.out.println("倒序后数据如下:");
for(int i = 0; i < ary1.length ;i++){
System.out.print(ary1[i] + "\t");
}
System.out.println();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询