Topic: 关于数组的问题,帮帮忙

  Print this page

1.关于数组的问题,帮帮忙 Copy to clipboard
Posted by: fq88
Posted on: 2005-10-01 12:18

class taxis
{
  public static void main(String[] args)
  {
    int [] buf={1,4,7,9,5};
    int k=0;
    for(int i=0;i<=buf.length;i++)
    {
      if(buf[i]>buf[i+1])
      {
        k=buf[i];
        buf[i]=buf[i+1];
        buf[i+1]=k;
        System.out.print(buf[i+1]);
      }
      else
      {
        System.out.print(buf[i]);
      }
    }
  }
}
运行不了,,怎么办!

2.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: uniquejava
Posted on: 2005-10-01 13:09

不明白你写的程序想干么子? 数组下标越界。。
buf的下标最多只能取 buf.length-1.....即

控制条件i<=buf.length-1,

不仅如此,你的下标中出现i+1, 所以i+1 也要小于等于buf.length-1

综上所述,i<buf.length-1,,才不会出现Run TIme Error!..

至于写这个是为啥子,看不明白。。。

3.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: bluecrystal
Posted on: 2005-10-01 17:25

楼主是在排序
一个错误就是越界,上面那个兄弟说的很清楚了
另外一个,请养成类名首字母大写的习惯

4.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: lizhihua
Posted on: 2005-10-02 15:53

你是想实现数组从小到大的排序吗?
这叫冒泡排序,但是你这个写法也是错误的。
冒泡排序应用两个FOR循环来实现。

5.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: acl2005
Posted on: 2005-10-04 17:27

//:maopao.java
public class maopao{
public static void main(String[] args){
int[] arr={89,78,43,23,22,89,12,69,99,6};
for(int i=1;i<arr.length;i++)
{
for(int j=0;j<i;j++) \\这里是两个循环控制的
{
if(arr[i]>arr[j])
{
int ks=arr[i]; \\ 这里是个临时变量"ks"
arr[i]=arr[j];
arr[j]=ks;
}
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
}
}///:~

6.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: acl2005
Posted on: 2005-10-04 17:34

我也是个菜鸟,看书上有这个题.然后就学着写下来了!!
 
让我们共同努力吧!

7.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: 火山一角
Posted on: 2005-10-19 21:40

class Student
{
  String name;int age,yy,sx,java;
  public Student(String name,int age,int yy,int sx,int java)
  {
    this.name=name;this.age=age;this.yy=yy;
    this.sx=sx;this.java=java;
  }
  Student[] s=new Student[3];
  Student s[0]=new Student("张三",19,83,65,72);
  Student s[1]=new Student("李司",20,75,57,88);
  Student s[2]=new Student("王五",20,83,62,91);
  public int zf()
  {
    int zf;
    zf=yy+sx+java;
    return zf;
  }
  public int HighestScore()
  { int max=0;
    for(int i=0;i<3;i++)
    if(max>s[i].java) max=s[i].java;
    return max;
  }
}
public class Xshchj
{
  public static void main(String[] args)
  {
    System.out.println(s0.name+" "+s0.zf);
    System.out.println(s1.name+" "+s1.zf);
    System.out.println(s2.name+" "+s2.zf);
    System.out.println(HighestScore());
    for(int i=0;i<3;i++)
    {
      if(s[i].yy<60) System.out.println(s[i].name+" "+s[i].yy);
      if(s[i].sx<60) System.out.println(s[i].name+" "+s[i].sx);
      if(s[i].java<60) System.out.println(s[i].name+" "+s[i].java);
    }
  }
}
这是我自己编写的一个关于数组的程序,运行显示第10-12行需要"]",我该怎么修改啊?谢谢你们的回答.

8.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: leiqlion
Posted on: 2005-10-23 15:23

楼主那样也能排序吗?

9.Re:关于数组的问题,帮帮忙 [Re: 火山一角] Copy to clipboard
Posted by: leiqlion
Posted on: 2005-10-23 16:12

火山一角 wrote:
class Student
{
  String name;int age,yy,sx,java;
  public Student(String name,int age,int yy,int sx,int java)
  {
    this.name=name;this.age=age;this.yy=yy;
    this.sx=sx;this.java=java;
  }
  Student[] s=new Student[3];
  Student s[0]=new Student("张三",19,83,65,72);
  Student s[1]=new Student("李司",20,75,57,88);
  Student s[2]=new Student("王五",20,83,62,91);
  public int zf()
  {
    int zf;
    zf=yy+sx+java;
    return zf;
  }
  public int HighestScore()
  { int max=0;
    for(int i=0;i<3;i++)
    if(max>s[i].java) max=s[i].java;
    return max;
  }
}
public class Xshchj
{
  public static void main(String[] args)
  {
    System.out.println(s0.name+" "+s0.zf);
    System.out.println(s1.name+" "+s1.zf);
    System.out.println(s2.name+" "+s2.zf);
    System.out.println(HighestScore());
    for(int i=0;i<3;i++)
    {
      if(s[i].yy<60) System.out.println(s[i].name+" "+s[i].yy);
      if(s[i].sx<60) System.out.println(s[i].name+" "+s[i].sx);
      if(s[i].java<60) System.out.println(s[i].name+" "+s[i].java);
    }
  }
}
这是我自己编写的一个关于数组的程序,运行显示第10-12行需要"]",我该怎么修改啊?谢谢你们的回答.


这个程序有点儿问题啊Highscore中的,MAX放的不是最大值,而是一个最小值.
如果是要求最小值的话,最好不要乱用变量名.

10.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: leiqlion
Posted on: 2005-10-23 16:24

还有这里的用法都错了,一个类中只能包括变量的定义和方法的定义,不允许有其它的操作.而里你用了
"
Student[] s=new Student[3];
Student s[0]=new Student("张三",19,83,65,72);
Student s[1]=new Student("李司",20,75,57,88);
Student s[2]=new Student("王五",20,83,62,91);
"

应用一个Init()方法来完成此工作

11.Re:关于数组的问题,帮帮忙 [Re: fq88] Copy to clipboard
Posted by: leiqlion
Posted on: 2005-10-23 16:28

在一个类中只能包括方法的定义和变量的定义,而这位人兄犯了这个错误.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923