类型不匹配和其他一些无法解决它们的错误

时间:2014-03-20 17:39:17

标签: java

import java.util.*;
class sample
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);    //taking input from user
long t=in.nextLong();
long a[]=new long[1000];            //array of long numbers
for(long i=0;i<a.length;i++)
   {
    a[i]=in.nextLong();          //values into array
   }
sort(a,t);
return 0;
}
void sort(long a[],long t)
 { 
 long count=0,temp;
 for(long i=0;i<t;i++)
 {
  for(long j=i+1;j<t;j++)            //sorting the array using selection sort
   {
        if(a[i]<a[j])
            {
                temp=a[i];
                a[j]=a[i];
                a[j]=temp;
            }
    }
}
for(long j=0;j<t;j++)
{
   if(a[t]-3*a[j+1]<=0)
continue;               
else                                     //program for chang and mathematical champ
count++;
 }
    System.out.println(count);
}

}

$         1)类型不匹配错误         2)Void方法不能返回值         3)不能对类型的非静态方法排序(long [],long)进行静态引用         如何解决这些问题

1 个答案:

答案 0 :(得分:1)

  1. for(long i=0;i<a.length;i++)和类似的,其中i用于索引数组,应该是for(int i=0;i<a.length;i++),因为数组(和列表)是用整数索引的,而不是长整数;
  2. 您在第14行返回0。如果您想以值退出,则需要致电System.exit(0);,尽管这不是一个好习惯。或者你可以打电话给return;
  3. 您可以在sort
  4. 中声明static void sort(...)静态

    作为旁注,你显然是java的初学者。我强烈建议阅读&#34; Effective Java 2nd Ed&#34;作者:Joshua Bloch,了解java的工作原理。或者至少离开java trails来了解java的工作原理。如果你不学习,你 会被烧伤。