我觉得我的代码木有问题,但是在求最值得时候总会出错,求出来的值并不是最值,求大神指导
import java.util.Scanner;
class Noname1 {
public static void main(String[] args) {
int[] arr=creatArray();
viewShow(arr);
}
//创建数组
public static int[] creatArray() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组的长度:");
int len=sc.nextInt();
int[] arr=new int[len];
for(int i=0;i<len;i++){
System.out.println("请输入数组的第"+(i+1)+"数据:");
arr[i]=sc.nextInt();
}
return arr;
}
//主界面
public static void viewShow(int[] arr) {
Scanner sc=new Scanner(System.in);
System.out.println();
System.out.println("主界面:");
System.out.println("-----------------------------");
System.out.println("1.显示数组;");
System.out.println("2.查找数据;");
System.out.println("3.翻转数组;");
System.out.println("4.数组最值;");
System.out.println("5.创建数组:");
System.out.println("886.退出;");
System.out.println("-----------------------------");
System.out.println("请输入你需要的选项: ");
int choose=sc.nextInt();
switch(choose) {
case 1:
System.out.println("您输入的数组为:");
showArray(arr);
viewShow(arr);
case 2:
System.out.println("请输入您要查找的数据:");
int num=sc.nextInt();
seachNum(num,arr);
viewShow(arr);
case 3:
System.out.println("反转后的数组为:");
turnArray(arr);
viewShow(arr);
case 4:
System.out.println("需要查找:1 最大值;2 最小值;3 返回");
int c=sc.nextInt();
if(c==1) {
System.out.println("您查找的最大值为:");
int max=max(arr);
System.out.println(max);
}else if(c==2) {
System.out.println("您查找的最小值为:");
int min=min(arr);
System.out.println(min);
}else if(c==3) {
viewShow(arr);
} else {
System.out.println("您输入有误请返回重新输入");
}
viewShow(arr);
case 5:
main(int[] arr);
case 886:
break;
default :
System.out.println("您输入有误请--------跳转返回");
viewShow(arr);
}
}
//显示数组方法
public static void showArray(int[] arr) {
System.out.print("[ ");
for (int i =0;i<arr.length ;i++ ) {
System.out.print(arr[i]+"\t");
}
System.out.print("]");
System.out.println();
}
//查找数据方法
public static void seachNum(int num,int[] arr) {
for (int i=0; i<arr.length;i++) {
if(num==arr[i]) {
System.out.println("您查找的数据的下标为:"+i);
}else {
System.out.println("您查找的数据不存在");
}
}
}
//反转数组方法
public static void turnArray(int[] arr) {
int[] b=arr;
for(int i=0;i<b.length/2;i++) {
int temp=b[i];
b[i]=b[arr.length-1-i];
b[arr.length-1-i]=temp;
}
showArray(b);
}
//最大值方法
public static int max(int[] arr) {
int max=arr[0];
for(int i=1;i<arr.length;i++) {
max=max>arr[i]?max:arr[i];
return max;
}
return -1;
}
//最小值方法
public static int min(int[] arr) {
int min=arr[0];
for(int i=1;i<arr.length;i++){
min=min<arr[i]?min:arr[i];
return min;
}
return -1;
}
} |
|