Java 数组常见例题(转置,排序,求和平均(去最大值最小值)插入,删除(用户选择指定功能运行))
本人小白刚学Java一学期,有错误的地方请指出
package com.company;
import java.util.Scanner;
class array
{
public static void reverse(int[] data) {
System.out.println("转置后的数组为:");
int center = data.length / 2;
int head = 0;
int tail = data.length - 1;
for (int i = 0; i < center; i++) {
int temp = data[head];
data[head] = data[tail];
data[tail] = temp;
head++;
tail--;
}**加粗样式**
}
public static void smallTobi(int[] temp1) {
for (int i = 0; i < temp1.length - 1; i++) {
for (int j = 0; j < temp1.length - 1 - i; j++) {
if (temp1[j] > temp1[j + 1]) {
int change = temp1[j];
temp1[j] = temp1[j + 1];
temp1[j + 1] = change;
}
}
}
System.out.println("大小顺序为:");
for (int i = 0; i < temp1.length; i++) {
System.out.print(temp1[i] + " ");
}
System.out.println();
}
public static void sum(int[] temp2) {
double sum1 = 0;
double max = temp2[0];
double min = temp2[0];
for (int i = 0; i < temp2.length; i++) {
sum1 += temp2[i];
if (max < temp2[i]) {
max = temp2[i];
}
if (min > temp2[i]) {
min = temp2[i];
}
}
System.out.println("最大值为:" + max);
System.out.println("最小值为:" + min);
System.out.println("未去掉数组总和为:" + sum1);
double average = sum1 / temp2.length;
System.out.println("未去掉数组平均数为:" + average);
System.out.println("去掉最大值和最小值后的总值为:" + (sum1 - max - min));
System.out.println("去掉最大值和最小值后的平均值为:" + ((sum1 - max - min) / (temp2.length - 2)));
}
public static int [] insert(int[]temp3)
{
System.out.println("请输入插入数据的值:");
Scanner s=new Scanner(System.in);
int value=s.nextInt();
System.out.println("请输入插入数据的位置"+"0-9");
int index=s.nextInt();
System.out.println("数组插入:"+value+"后的顺序为:");
int []b=new int[temp3.length+1];
for (int i = 0; i < temp3.length+1 ; i++)
{
if (index<0)
{
System.out.println("请输入位置为:0-9的数据,否则无法执行!");
break;
}
if(i<index)
{
b[i]=temp3[i];
}
if(i==index)
{
b[i]=value;
}
if(i>index)
{
b[i]=temp3[i-1];
}
}
return b;
}
public static int [] delete(int []temp4)
{
Scanner s=new Scanner(System.in);
System.out.println("请用户输入想要删除的位置"+"0-9:");
int index=s.nextInt();
System.out.println("删除指定位置:"+index+" 后的排序为:");
int []c=new int[temp4.length-1];
for (int i = 0; i < temp4.length-1 ; i++)
{
if (index<0)
{
System.out.println("请输入位置为:0-9的数据,否则无法执行!");
break;
}
if(i<=index-1)
{
c[i]=temp4[i];
}
else
{
c[i]=temp4[i+1];
}
}
return c;
}
public static void printArray(int[] temp) {
for (int i = 0; i < temp.length ; i++) {
System.out.print(temp[i]+" ");
}
System.out.println();
}
}
public class Main {
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
System.out.println("请用户输入十个数字:");
int[] data = new int[10];
for (int i = 0; i < 10; i++)
{
data[i] = s.nextInt();
}
while(true)
{
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("6:程序退出!");
array a=new array();
int x = s.nextInt();
switch (x) {
case 1:
a.reverse(data);
a.printArray(data);
break;
case 2:
a.smallTobi(data);
break;
case 3:
a.sum(data);
break;
case 4:
int[] p = a.insert(data);
a.printArray(p);
break;
case 5:
int[] c = a.delete(data);
a.printArray(c);
break;
case 6:
System.exit(0);
default:
System.out.println("无可执行代码!请用户输入1-5的代码口令!");
}
}
}
}
**运行结果:**
"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar=2179:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;C:\Users\h3class\IdeaProjects\untitled1\out\production\untitled1" com.company.Main
请用户输入十个数字:
1 2 3 4 5 0 9 8 7 6
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
1
转置后的数组为:
6 7 8 9 0 5 4 3 2 1
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
2
大小顺序为:
0 1 2 3 4 5 6 7 8 9
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
3
最大值为:9.0
最小值为:0.0
未去掉数组总和为:45.0
未去掉数组平均数为:4.5
去掉最大值和最小值后的总值为:36.0
去掉最大值和最小值后的平均值为:4.5
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
4
请输入插入数据的值:
55
请输入插入数据的位置0-9
0
数组插入:55后的顺序为:
55 0 1 2 3 4 5 6 7 8 9
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
5
请用户输入想要删除的位置0-9:
2
删除指定位置:2 后的排序为:
0 1 3 4 5 6 7 8 9
请用户输入您想要执行程序的代码:
1:数组重置。
2:数组冒泡排序。
3:数组求和,并求平均值和去掉最大值最小值后的总和与平均值。
4:数组插入数据并重新排列。
5:数组删除用户指定数据并重新排列。
6:程序退出!
6
Process finished with exit code 0