import java.util.*;
class sorting{
static void SortArray(int[] a ,int size){
int low =0;
int mid =0;
int high = size-1;
int temp;
while(a[mid]<= high){
switch(a[mid]){
case 0:{
temp = a[low];
a[low] = a[mid];
a[mid] = temp;
low++;
mid++;
break;
}
case 1:
mid++;
break;
case 2:{
temp = a[mid];
a[mid] = a[high];
a[high] = temp;
high--;
break;
}
}
}
}
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int[] a = new int[size];
for(int i = 0; i< size; i++){
a[i] = sc.nextInt();
}
System.out.println(SortArray(a,size));
}
}
请检查输出。 OUTPUT IS HERE
为什么我会收到这里不允许的“void”类型错误?我想我已经正确地编写了这段代码,对吗?这段代码有什么问题吗?请帮我理解这个错误。
答案 0 :(得分:0)
您的 SortArray
的返回值是无效的。这意味着它不返回任何值。
你试图将它发送到另一个等待输入的函数:
System.out.println(SortArray(a,size));
答案 1 :(得分:0)
static void SortArray(int[] a ,int size)
case 2:{....
}
}
}
return a;
}
然后在您的方法中添加 return a;,如上所示
这将解决此处不允许使用 void 类型