62,612
社区成员
发帖
与我相关
我的任务
分享
/**
*
* @功能: 1.新建一个数组int[] arr = new int[20];
2.动态赋值10个1到100之间的数字,利用随机数赋值;
3.对数组进行从小到大的排序;(必须用冒泡排序法)
4.插入一个1到100之间的数字到数组的第5个位置;
5.查询50这个数字是否在数组中,如果有打印“OK”,如果没找到打印“NO”;
6.删除下标为6的这个数字,然后再从大到小排序;(必须用冒泡排序法)
7.修改下标为3的这个数字为10;
*/
public class ArrayFinalTest {
public static void main(String[] args) {
//建立数组
int[] arr = new int[20];
//赋值
for (int i = 0; i < 10; i++) {
arr[i] = ((int)(Math.random() * 99999)) % 100 + 1;
}
System.out.println("初始化数组:");
for (int i = 0; i < 10; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
//排序
int temp;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println();
System.out.println("排序后:");
for (int i = 0; i < 10; i++) {
System.out.print(arr[i] + " ");
}
//插入第五个位置index = 4
for (int j = 9; j >= 4; j--) {
arr[j + 1] = arr[j];
}
arr[4] = ((int)(Math.random() * 99999)) % 100 + 1;
System.out.println();
System.out.println("插入后:");
for (int k = 0; k < 11; k++) {
System.out.print(arr[k] + " ");
}
System.out.println();
//查询
for (int j = 0; j < 11; j++) {
if (arr[j] == 50) {
System.out.println("50有这个数");
break;
} else {
System.out.println("没有50这个数");
break;
}
}
//删除排序下标为6
for (int j = 6; j < 10; j++) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
System.out.println();
System.out.println("删除后:");
for (int k = 0; k < 10; k++) {
System.out.print(arr[k] + " ");
}
for (int z = 0; z < 9; z++) {
for (int j = 0; j < 9 - z; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println();
System.out.println("删除后排序:");
for (int k = 0; k < 10; k++) {
System.out.print(arr[k] + " ");
}
arr[3] = 10;
System.out.println();
System.out.println("修改后:");
for (int k = 0; k < 10; k++) {
System.out.print(arr[k] + " ");
}
}
}
import java.util.*;
public class Array{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int[] arr={1,3,5,7,9}; //4:下标最大到4,因为共有5个元素(arr.length=5),而下标从0开始
System.out.println("输入你要插入的数字");
int num=in.nextInt();
arr[arr.length-1]=num; // 由上一个注释这句代码等效于:arr[4]=num;
// 此时数组最后一个元素的值变为num
for(int i=arr.length-1;i>=0;i--){ // 把数组下标最大值赋值给i,只要i大于等于数组最小下标就执行循环体
if(arr[i]<arr[i-1]){ // 如果数组第i+1个元素小于第i个元素时 [注意下标比实际位置小1]
int t=arr[i]; // 下面的代码定义了一个临时变量,借此交换数组中两个值
arr[i]=arr[i-1];
arr[i-1]=t;
}
/*
else{ // 这里是个bug,不满足if条件时会自动判断并执行下一次循环,
break; // 试试把数组改成这样int[] arr={1,6,5,7,9},你就明白为什么不能这么写了
}*/
}
for(int i=0;i<arr.length;i++)
System.out.println(arr[i]);
}
}