例如:给定整型数组{124, 1, 9, 38, 79, 66, 12, 99, 125},最后输出结果为:[125,124,99,79,66,38,12,9,1]。(数组)
package com.stx.p3.gonghaoyue;
import java.util.Arrays;
import java.util.Scanner;
//任意定义一个整型数组,按照降序排序,然后从键盘录入一个已有数字,输出该数组存在这个数的提示,没有就输出该数字不存在。
public class Demo01 {
public static void main(String[] args) {
//先定义一个整型数组
int[] arrays={124, 1, 9, 38, 79, 66, 12, 99, 125};
System.out.println("定义的数组为:"+Arrays.toString(arrays));
int[] change=change(arrays);
System.out.println("该数组按照降序排序后为:"+Arrays.toString(change));
System.out.println("请输入一个整数");
Scanner scanner =new Scanner(System.in);
int x=scanner.nextInt();
//通过flag标识判断该数字存不存在
boolean flag = false;
//对数组进行遍历,判断是否有这个数字。
for (int i = 0; i < arrays.length; i++) {
if(x==arrays[i]){
flag=true;
break;
}
}
if(flag){
System.out.println("该数组存在这个数!");
}else{
System.out.println("该数字不存在!");
}
scanner.close();
}
//利用冒泡排序,进行整型数组的降序排列。
public static int[] change(int[] arrays){
int temp=0;//定义一个中间变量
//外层循环,判断循环多少次
for (int i = 0; i < arrays.length; i++) {
//内层循环,因为每排序一次就会找出一个最大值和最小值,就减少了一次循环,所以j < arrays.length-i-1。
//两两比较,后面一个数比前面的数大,就交换位置。
for (int j = 0; j < arrays.length-i-1; j++) {
if(arrays[j+1]>arrays[j]){
temp =arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] =temp;
}
}
}
//返回这个数组
return arrays;
}
}
测试
第一次输入:
定义的数组为:[124, 1, 9, 38, 79, 66, 12, 99, 125]
该数组按照降序排序后为:[125, 124, 99, 79, 66, 38, 12, 9, 1]
请输入一个整数
1
该数组存在这个数!
第二次输入:
定义的数组为:[124, 1, 9, 38, 79, 66, 12, 99, 125]
该数组按照降序排序后为:[125, 124, 99, 79, 66, 38, 12, 9, 1]
请输入一个整数
2
该数字不存在!