public void noDups() 
{
long temp;int t;
for(t=0;t<elems;t++)
{
temp=a[t];//存在的数
while(t<elems  && temp==a[t])
{
a[t]=a[t+1];
}
}
}
这段方法的作用是用来删除重复的值,若发现有重复的值则把后边的元素往前移动一个位置。怎么不出现结果呢,

解决方案 »

  1.   


    public void noDups()  

    long temp;int t; 
    for(t=0;t <elems;t++) 

    temp=a[t];//存在的数 
    while(t <elems  && temp==a[t+1]) 

    a[t]=a[t+1]; 


    } 看红色部分
      

  2.   


    上面还是有点问题,大意了,应该是
    public void noDups()   
    {  
    long temp;int t;  
    for(t=0;t  <elems;t++)  
    {  
    temp=a[t];//存在的数  
    while(t+1  <elems  && temp==a[t+1])  
    {  
    a[t]=a[t+1];  
    }  
    }  
    }  
      

  3.   

    S F你这个程度当temp!=a[t]时候就退出了  
    怎么会有结果??