class ArrayApp 

public static void main(String[] args) 

long[] arr; 
arr = new long[100]; 
int ne = 0; 
int j; 
long searchKey; arr[0] =77 ; 
arr[1] = 99 ; 
arr[2] = 44; 
arr[3] = 55; 
arr[4] = 22; 
arr[5] =88; 
arr[6] =11; 
arr[7] =00; 
arr[8] =66; 
arr[9] =33; 
ne =10; 
//.....................打印輸出數組 
for(j=0;j <ne;j++) System.out.println(arr[j] + " "); 
System.out.println(""); 
//......................... 
//查找數組 
searchKey = 66; 
for(j=0;j <ne;j++) 
if(arr[j] == searchKey) 
break; 
//.........這裡已經退出循環了。 
if(j == ne) 
System.out.println("can't find" + searchKey); 
else 
System.out.println("Found "+ searchKey); 
//.......................... 
//刪除開始 
System.out.println("刪除后向前靠一個"); 
searchKey = 55; 
for(j=0;j <ne;j++) 
if(arr[j]  == searchKey) 
break; 
for(int k=j;k <ne;k++) 
arr[k] = arr[k+1]; 
ne--; 
//............... 
for(j=0;j <ne;j++) 
System.out.println(arr[j]); 
System.out.println(""); 
//.................... 
//插入數組 System.out.println("插入數組"); ++ne; 
arr[10]=82; 
for(j=0;j <ne;j++) 

System.out.println(arr[j]); 

System.out.println("ne is " + ne); 
System.out.println("arr[10] is " + arr[10]); } } 
結果: 
C:\class>java 
77 
99 
44 
55 
22 
88 
11 

66 
33 Found 66 
刪除后向前靠一 
77 
99 
44 
22 
88 
11 

66 
33 插入數組 
77 
99 
44 
22 
88 
11 

66 
33 

ne is 10 
arr[10] is 82 
上面第10個數組的結果怎么是0而不是82呢?很疑惑???

解决方案 »

  1.   

    ++ne; 
    arr[10]=82; 
    for(j=0;j <ne;j++) 

    System.out.println(arr[j]); 

    System.out.println("ne is " + ne); 
    System.out.println("arr[10] is " + arr[10]); 这块错了 把arr[10]=82换成arr[9]=82或arr[ne-1]=82; ;应该是楼主马虎所致
      

  2.   

    -_-
    arr[10]指的是第11個元素啦,數組的下標可以理解為offset