1. 将一个给定的整型数组转置输出,
例如: 源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1
//1. 将一个给定的整型数组转置输出,
// 例如: 源数组,1 2 3 4 5 6
// 转置之后的数组,6 5 4 3 2 1
package cn.edu.nefu;
public class Test01 {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5,6};
int [] arr1 = new int [arr.length];
for(int i=0;i<arr.length;i++){
arr1[arr.length-i-1] = arr[i];
}
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
}
}
2.静态初始化一维数组{10,20,11,35,6,89},进行冒泡排序
//2.静态初始化一维数组{10,20,11,35,6,89},进行冒泡排序
package cn.edu.nefu;
public class Test02 {
public static void main(String[] args) {
int [] arr = {10,20,11,35,6,89};
for(int i=0;i<arr.length;i++){
int temp;
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
3.静态初始化二维数组 {{1},{2,3},{4,5,6}},输出每个元素的值
//3.静态初始化二维数组 {{1},{2,3},{4,5,6}},输出每个元素的值
package cn.edu.nefu;
public class Test03 {
public static void main(String[] args) {
int [][] arr = {{1},{2,3},{4,5,6}};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
4、 现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:生活中的问题解决 = 程序中的解决;
1、 确定出不为0的个数,这样可以开辟新数组;
2、 从旧的数组之中,取出内容,并将其赋给新开辟的数组;
/*4、 现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:生活中的问题解决 = 程序中的解决;
1、 确定出不为0的个数,这样可以开辟新数组;
2、 从旧的数组之中,取出内容,并将其赋给新开辟的数组;*/
package cn.edu.nefu;
public class Test04 {
public static void main(String[] args) {
int oldArray [] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
int sum = 0;
for(int i=0;i<oldArray.length;i++){
if(oldArray[i]==0){
sum++;
}
}
int newArray [] = new int [oldArray.length-sum];
sum=0;
for(int i=0;i<oldArray.length;i++){
if(oldArray[i]==0){
sum++;
}else{
newArray[i-sum] = oldArray[i];
}
}
for(int i=0;i<newArray.length;i++){
System.out.print(newArray[i]+" ");
}
}
}
5、 现在给出两个数组:
· 数组A:{1,7,9,11,13,15,17,19}
· 数组b:{2,4,6,8,10}
两个数组合并为数组c,按升序排列。
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。
/*5、 现在给出两个数组:
· 数组A:{1,7,9,11,13,15,17,19}
· 数组b:{2,4,6,8,10}
两个数组合并为数组c,按升序排列。
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。*/
package cn.edu.nefu;
import java.util.Arrays;
public class Test05 {
public static void main(String[] args) {
int [] A = {1,7,9,11,13,15,17,19};
int [] B = {2,4,6,8,10};
int [] C = Arrays.copyOf(A,A.length+B.length);
System.arraycopy(B, 0, C, A.length, B.length);
Arrays.sort(C);
for(int i=0;i<C.length;i++){
System.out.print(C[i]+" ");
}
}
}
6.静态初始化二维数组 {{11,15,32,21},{2,3},{4,5,6}},输出每个元素的值,并从小到大排序。
//6.静态初始化二维数组 {{11,15,32,21},{2,3},{4,5,6}},输出每个元素的值,并从小到大排序。
package cn.edu.nefu;
import java.util.Arrays;
public class Test06 {
public static void main(String[] args) {
int [][] arr = {{11,15,32,21},{2,3},{4,5,6}};
int sum=0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum++;
}
}
int [] arr1 = new int [sum];
sum=0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr1[sum] = arr[i][j];
sum++;
}
}
Arrays.sort(arr1);
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
}
}
7.. *输出杨辉三角
杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
……
杨辉三角的特点:
1. 第i 行有i 个元素
2. 每一行的第一个元素和最后一个元素都为1
3. 除了1 之外,每个元素的值,都等于上一行同位置的元素以及前一个元素的和。
例如:
1 4 6 4 1 的下一行
1 a1 a2 a3 a4 1
a1 = 4 + 1 = 5
a2 = 6 + 4 = 10
a3 = 4 + 6 = 10
a4 = 1 + 4 = 5
依次类推。
要求:读入一个整数n,输出杨辉三角的前n 行
package cn.edu.nefu;
import java.util.Scanner;
public class Test07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数n:");
int n = sc.nextInt();
int [][] arr = new int [n][n];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(j==0){
arr[i][j]=1;
}else{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
8. *数组的插入和删除
定义一个长度为10的数组,通过控制台的输入5个数,
1.向数组中指定的位置中插入一个新元素,
2.删除指定位置的元素
package cn.edu.nefu;
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
int arr [] = new int [10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入5个数:");
for(int i=0;i<5;i++){
arr[i] = sc.nextInt(); //通过控制台的输入5个数
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
//向数组中指定的位置中插入一个新元素
System.out.println("请输入插入元素的位置:");
int index = sc.nextInt(); //插入元素的位置
System.out.println("请输入插入元素的值:");
int num = sc.nextInt(); //插入元素的值
int newArr [] = new int [arr.length+1];
System.arraycopy(arr, 0, newArr, 0, index);
newArr[index] = num;
System.arraycopy(arr, index, newArr, index+1, arr.length-index);
for(int i=0;i<newArr.length;i++){
System.out.print(newArr[i]+" ");
}
System.out.println();
//删除指定位置的元素
int[] Arr = new int [arr.length-1];
System.out.println("请输入删除元素的位置");
int index1 = sc.nextInt(); //删除元素的位置
System.arraycopy(arr, 0, Arr, 0, index1);
System.arraycopy(arr, index1+1, Arr, index1, arr.length-index1-1);
for(int i=0;i<Arr.length;i++){
System.out.print(Arr[i]+" ");
}
}
}