实验目标:
Ø
1)
掌握一维数组的定义与使用
。
Ø
2
)
掌握
二维数组的定义与使用。
1. 定义一个长度为10的整型数组,从键盘输入10个数存放在数组中,然后将其前5个元素和后5个元素对换,即:第1个元素与第10个元素对换,第2个元素与第9个元素对换等。分别输出数组原来各元素的值和互换后各元素的值。
package 第一题;
import java.util.Scanner;
public class 第一题 {
public static void main(String[] args) {
int []a=new int [10];//定义一个长度为10的数组
Scanner input=new Scanner(System.in);
//将十个数据依次输入至a[10]中,利用for循环直至i=a.length(a数组的长度)
for(int i=0;i<a.length;i++) {
a[i]=input.nextInt();
}
System.out.print("互换前:");
//将a[10]依次输出,检验输入数据是否正确
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
System.out.println();//换行
//进行如题所述的元素互换
for(int i=0;i<a.length/2;i++) {
int b;
b=a[i];
a[i]=a[a.length-i-1];
a[a.length-i-1]=b;
}
System.out.print("互换后:");
//输出元素互换后的结果
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
}
}
3.定义一个2行3列的整型二维数组,对数组中的每个元素赋值一个1~100的随机整数,然后分别对第一行、第二行的元素从小到大排序。
①实验方法
package 第二题;
import java.util.Random;
class BubbleSort {
public static void sort(int[] arrays) { //第一个循环控制n-1趟排序
for (int i = 0; i < arrays.length - 1; i++) { //第二个循环控制每次要比较的元素个数n-1-i
for (int j = 0; j < arrays.length - i - 1; j++) {
if (arrays[j] > arrays[j + 1]) {
int t = arrays[j];
arrays[j] = arrays[j + 1];
arrays[j + 1] = t;
}
}
}
}
}
public class exp1_4_2 {
public static void reorder(int[][] twoDimArray) {
for (int i = 0; i < twoDimArray.length; i++)
BubbleSort.sort(twoDimArray[i]); //用数组twoDimArray[i]作为参数调用sort()方法;
}
public static void main(String[] args) {
int[][] a = new int[2][3];//创建大小为2行3列的整型二维数a
Random random = new Random();
System.out.println("随机生成的数组为:");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
int num = random.nextInt(100);//返回一个伪随机数,它是取自[0,100),
a[i][j] = num;//并赋给a[i][j],然后将二维随机数组输出。
System.out.print(num+" ");
}
System.out.println();//换行
}
reorder(a);//用数组a作为参数调用reorder()方法;
System.out.println("排序后的数组为:");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) { //输出排序后的二维数组
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
②简易理解方法
package 第二题;
import java.util.Random;
public class 第二题 {
public static void main(String[]args) {
int [][]a=new int[2][3];//创建大小为2行3列的整形二维数a
int num = 0;
Random random=new Random();
System.out.println("随机生成的数组为:");
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[0].length;j++) {
a[i][j]=(int)(Math.random()*100+1);//随机赋1~100的值给二维数组a[i][j]
}
}
//输出排序前初始数组核验
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[0].length;j++) System.out.print(" "+a[i][j]);
System.out.println();
}
reorder(a);//用数组a作为参数调用reorder()方法
System.out.println("排序后的数组为:");
//输出排序后的二维数组
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[0].length;j++) System.out.print(" "+a[i][j]);
System.out.println();
}
}
static class BubbleSort{
//定义一个排序方法
public static void sort(int[]args) {
for(int i=0;i<args.length;i++) {
for(int j=i+1;j<args.length;j++) {
if(args[i]>args[j]){
int b;
b=args[i];
args[i]=args[j];
args[j]=b;
}
}
}
}
}
public static void reorder(int[][]twoDimArray) {
for (int i = 0; i < twoDimArray.length; i++)
BubbleSort.sort(twoDimArray[i]);//用数组twoDimArry[i]作为参数调用sort()方法
}
}