日期:2014-05-20  浏览次数:20618 次

在控制台命令行参数输入n个字符,先将他们转换成int,然后把他们按从小到大排列输出。写了个小程序,有点问题。高手指点一二!
Java code
public class ArrayTest {
    public static void main(String args[]) {
        for(int i=0;i<args.length;i++) {
            System.out.print(args[i]+" ");
            int[] a = new int[args.length] ; a[i]= Integer.parseInt(args[i]);
            NumSort numsort = new NumSort(a[i]);
            
        }
    }
}

class NumSort {
    public void NumSort(int[] a) {
      for(int i=0;i<a.length;i++) {
          for(int j=i+1;j<a.length;j++) {
              int temp;
              temp = a[i];
              a[i] = a[i+i];
              a[i+1] = temp;
               System.out.print(a[i]+" ");
          }
      }
     
  }
}


NumSort numsort =new NumSort(a[i]); 这句报错,说找不到符号。。

望高手帮忙修改,指出错误!谢谢!

------解决方案--------------------
public void NumSort(int[] a) 构造函数没有声明,把void去掉,另外NumSort numsort = new NumSort(a[i]);
改为NumSort numsort = new NumSort(a);因为参数是一个数组对象,而不是一个数

------解决方案--------------------
呵呵,你这个是大问题,你还小问题呢。整个就一个逻辑混乱啊,呵呵。

你先取得N个字符之后再转成数字,传入数组吧,你现在是每个字符有要新建一个数组,太浪费了。也没有达到需要的要求。
------解决方案--------------------
public void NumSort(int[] a) 你定义时是说传一个数组做参数
NumSort numsort = new NumSort(a[i]);调用的时候却是传了一个整数而已,参数不匹配,找不到对应的方法
------解决方案--------------------
问题好多,改了点基本的,自己看看排序算法也有问题。

import java.util.Arrays;


public class ArrayTest{

public static void main(String args[]) {
int[] a= new int[args.length];
for (int i = 0; i < args.length; i++) {
System.out.print(args[i] + " ");
a[i] = Integer.parseInt(args[i]);
}
Arrays.sort(a);
if(a!=null)
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}