class ArrayInt{//我想写一个操作int类型数组的类,加深对数组的理解
public void sort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
public int max(int[] arr){
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
public int min(int[] arr){
int min=arr[0];
for(int i=1;i<arr.length;i++){
if(min>arr[i]){
min=arr[i];
}
}
return min;
}
public int select(int[] arr,int key){
for(int i=0;i<arr.length;i++){
if(arr[i]==key){
return i;
}
return -1;
}
}
public int select(int key,in[] arr){
min=0;
max=arr.length-1;
mid=(min+max)/2;
for(;;){
if(key>arr[mid]){
min=mid+1;
}else if(key<arr[mid]){
max=mid-1;
}else{
return mid;
}
if(max<min){
return -1;
}
}
public String getString(int[] arr){//然后这里报错了
String str="";
for(int i=0;i<arr.length;i++){
str=arr[i]+" ";
}
return "[ "+str+" ]";
}
public int[] kill0(int[] arr){//还有这里
int count=0;
for(int i=0;i<arr.length;i++){
if(arr[0]!=0){
count++;
}
}
int[] arrx=new arr[count];
int index=0;
for(int i=0;i<arr.length;i++){
if(arr[0]!=0){
arr[index++]=arr[i];
}
}
return arrx;
}
}
}
/*
编译后结果如下
Demo7.java:55: 错误: 非法的表达式开始
public String getString(int[] arr){
^
Demo7.java:55: 错误: 需要';'
public String getString(int[] arr){
^
Demo7.java:55: 错误: 需要';'
public String getString(int[] arr){
^
Demo7.java:62: 错误: 非法的表达式开始
public int[] kill0(int[] arr){
^
Demo7.java:62: 错误: 需要';'
public int[] kill0(int[] arr){
^
Demo7.java:62: 错误: 需要';'
public int[] kill0(int[] arr){
^
6 个错误
*/
//拜托了(●'◡'●)
问题挺多的,首先你的方法定义到了类外面
for(int i=1;i if(max max=arr[i];这行代码没明白想表达什么。
public String getString(int[] arr){//然后这
public int[] kill0(int[] arr){//还有
这两个方法写到 public int select(int key,in[] arr) 方法里面了
并且执行 public int select(int key,in[] arr) 这个方法时,里面的这两个方法没法执行
你的错误有点严重,都是些低级错误,要么是类型没写,要么是返回的时候写错,要么是花括号没加上,我已经帮你修复了,你自己对比吧,加油啊
public class ArrayInt {
public void sort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
public int max(int[] arr){
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
public int min(int[] arr){
int min=arr[0];
for(int i=1;i<arr.length;i++){
if(min>arr[i]){
min=arr[i];
}
}
return min;
}
public int select(int[] arr,int key){
for(int i=0;i<arr.length;i++){
if(arr[i]==key){
return i;
}
}
return -1;
}
public int select(int key,int[] arr){
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
for(;;){
if(key>arr[mid]){
min=mid+1;
}else if(key<arr[mid]){
max=mid-1;
}else{
return mid;
}
if(max<min){
return -1;
}
}
}
public String getString(int[] arr){//然后这里报错了
String str="";
for(int i=0;i<arr.length;i++){
str=arr[i]+" ";
}
return "[ "+str+" ]";
}
public int[] kill0(int[] arr){//还有这里
int count=0;
for(int i=0;i<arr.length;i++){
if(arr[0]!=0){
count++;
}
}
int[] arrx=new int[count];
int index=0;
for(int i=0;i<arr.length;i++){
if(arr[0]!=0){
arr[index++]=arr[i];
}
}
return arrx;
}
}