1、有10个数字要求分别用选择法和冒泡法从大到小输出
选择法:
public class Task011 {
public static void main(String[] args) {
/*
* 有10个数字要求分别用选择法和冒泡法从大到小输出
* */
//先用选择发从大到小输出
//初始化一个长度为10的数组
int[] array = {10,32,53,54,65,7,76,43,34,88};
for (int i=0;imax){
max = array[j];
a = j;
}
}
System.out.print(max+" ");
int temp = array[i];
array[i] = array[a];
array[a] = temp;
}
System.out.println();
}
}
冒泡法:
public class Task012 {
public static void main(String[] args) {
/*
* 有10个数字要求分别用选择法和冒泡法从大到小输出
* */
//用选择发从大到小输出
//初始化一个长度为10的数组
int[] array = {10,32,53,54,65,7,76,43,34,88};
for (int i=0;i
2、求一个3*3矩阵对角线元素之和
<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
public class Task02 {
public static void main(String[] args) {
/*
* 求一个3*3矩阵对角线元素之和
* <提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//创建一个3*3的二维数组
int[][] array = new int[3][3];
//用户输入数据
for (int i=0;i< array.length;i++){
System.out.println("------------请输入第"+(i+1)+"行数据------------");
for (int j=0;j
3、有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
<提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。
public class Task03 {
public static void main(String[] args) {
/*
* 有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
* <提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//创建一个已经升序好的数组并输出
int[] array = {11,23,54,64,75,89,93,99};
System.out.println(Arrays.toString(array));
//首先创建一个比原来的大一的数组,并将元素赋值到新的数组中
int[] newArray = Arrays.copyOf(array,array.length+1);
//用户输入要插入数组中的数字
System.out.println("请输入你要插入的数字:");
int insertNum = sc.nextInt();
//获取要插入位置的下标值
int getLocation = newArray.length-1;
for (int i=0;igetLocation;i--){
newArray[i] = newArray[i-1];
}
//最后将要插入的值赋予对应的位置并输出
newArray[getLocation] = insertNum;
System.out.println(Arrays.toString(newArray));
}
}
4、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
public class Task04 {
public static void main(String[] args) {
/*
* 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//创建一个数组
int[] array = new int[6];
//输入数组的值
for (int i=0;i< array.length;i++){
//用户输入值
System.out.println("请输入数组的值:");
array[i] = sc.nextInt();
}
//交换前的数组为
System.out.println("输出交换前的数组:");
System.out.println(Arrays.toString(array));
//获取最大值,先假设第一个数为最大值
int max = array[0];
int subscriptMax = 0; //记录下标
for (int i=1;imax){
max = array[i];
subscriptMax = i;
}
}
//最大值与第一个交换
array[subscriptMax] = array[0];
array[0] = max;
//获取最小值,先假设第一个数为最小值
int min = array[0];
int subscriptMin = 0; //记录下标
for (int i=1;i< array.length;i++){
if (array[i]
5、有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
public class Task05 {
public static void main(String[] args) {
/*
* 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//获取用户有几个整数
System.out.println("请输入有几个整数:");
int n = sc.nextInt();
System.out.println("请输入你要向后移动多少位置:");
int m = sc.nextInt();
//创建一个数组来存储这n个整数
int[] array = new int[n];
//初始化数组
for (int i=0;i< array.length;i++){
System.out.println("请输入第"+(i+1)+"个整数:");
array[i] = sc.nextInt();
}
//输出移动前的数组
System.out.println("移动前的数组:");
System.out.println(Arrays.toString(array));
//移动数组
for (int i=1;i<=m;i++){ //外层循环代表移动几个
int temp = array[array.length-1];
for (int j= array.length-1;j>=0;j--){ //内层循环来移动一个
if (j==0){
array[j] = temp;
}else {
array[j] = array[j-1];
}
}
}
//输出移动后的数组
System.out.println("移动后的数组:");
System.out.println(Arrays.toString(array));
}
}
6、定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换
public class Task06 {
public static void main(String[] args) {
/*
* 定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//声明一个4行4列的二维数组并赋值
int[][] array = new int[4][4];
for (int i=0;i
7、定义一个4行4列的二维数组,逐个从键盘输入值,将对角线的值清0
public class Task07 {
public static void main(String[] args) {
/*
* 定义一个4行4列的二维数组,逐个从键盘输入值,将对角线的值清0
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//声明一个4行4列的二维数组并赋值
int[][] array = new int[4][4];
for (int i=0;i
8、定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
public class Task08 {
public static void main(String[] args) {
/*
* 定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
* */
//创建一个Scanner类对象
Scanner sc = new Scanner(System.in);
//请输入你n*n的数组n为多少
System.out.println("请输入你n*n的数组n为多少:");
int n = sc.nextInt();
//声明一个n行n列的二维数组并赋值
int[][] array = new int[n][n];
for (int i=0;imax){
max = array[i][j];
}
}
maxArray[i] = max;
}
//输出取出的最大值
System.out.println("每一行的最大值为:");
System.out.println(Arrays.toString(maxArray));
}
}