目录
文章目录
一、基础算法
1.遍历二维数组
package com.rickey.exer;
public class Arrayexer {
public static void main(String[] args){
int[][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};
int sum = 0;
for(int i =0;i < arr.length;i++){
for(int j = 0;j < arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
}
}
显示结果
2.打印杨辉三角
//打印杨辉三角
package com.rickey.exer;
public class Arrayexer2 {
public static void main(String[] args){
int arr1[][] = new int[10][10];
arr1[0][0] = 1;
for(int i = 1;i < arr1.length;i++){
for(int j =0;j < arr1[i].length;j++){
int num1,num2;
try{
num1=arr1[i-1][j-1];
}catch(Exception e){
num1 = 0;
}
try{
num2=arr1[i-1][j];
}catch(Exception e){
num2 = 0;
}
arr1[i][j] = num1+num2;
System.out.print(arr1[i][j]+"\t");
}
System.out.print("\n");
}
}
}
显示结果
3.学生成绩评级系统
package com.atguigu.java;
import java.util.Scanner;
public class ArrayDemo1 {
public static void main(String[] args){
//1.使用Scanner读取学生个数 ctrl+shift+o 导进所有第三方库
Scanner scanner=new Scanner(System.in);
System.out.println("请输入学生人数:");
int number = scanner.nextInt();
//2.创建数组,存储学生成绩,动态初始化
int[] scores = new int[number];
//3.给数组中的元素赋值
System.out.println("请输入"+number+"个学生成绩:");
for(int i = 0;i < scores.length;i++){
scores[i]=scanner.nextInt();
}
//4.获取元素中的最高分
int maxScore = 0;
for(int j =0;j<scores.length;j++){
if(maxScore < scores[j]){
maxScore = scores[j];
}
}
//5.根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩
char level;
for(int z =0;z<scores.length;z++){
if(maxScore-scores[z]<=10){
level='A';
}else if(maxScore-scores[z]<=20){
level='B';
}
else if(maxScore-scores[z]<=30){
level='C';
}else{
level = 'D';
}
System.out.println("student is "+z+scores[z]+",grade is "+level);
}
}
}
显示结果
4.创建指定一维数组
/*
* 创建一个长度为6的int型数组
* 数组元素在1~30随机赋值且不重复
*/
package com.rickey.exer;
import java.util.Random;
public class Arrayexer3 {
public static void main(String[] args){
Random rand = new Random();
int arr1[] = new int[6];
boolean BS = true;
for(int i = 0;i < arr1.length;i++){
int randNumber = rand.nextInt(30)+1;
label1:
{for(int j = 0;j < arr1.length;j++){
if (randNumber == arr1[j]){
randNumber = rand.nextInt(30)+1;
break label1;
}
}
arr1[i] = randNumber;
System.out.println(arr1[i]);
}
}
}
}
5.求取max、min、avg、sum
//求取一维数组的max min avg sum
package com.rickey.exer;
import java.util.Random;
public class Arrayexer4 {
public static void main(String[] args){
Random rand = new Random();
int arr[] = new int[10];
for(int i = 0;i < arr.length;i++){
int randNumber = rand.nextInt(100);
arr[i] = randNumber;
}
int maxNum = arr[0];
int minNum = arr[0];
int sumNum = 0;
int avgNum = 0;
for(int i = 0;i < arr.length;i++){
if(maxNum<arr[i]){
maxNum = arr[i];
}
if(minNum>arr[i]){
minNum = arr[i];
}
sumNum+= arr[i];
}
avgNum = sumNum/arr.length;
System.out.println(maxNum);
System.out.println(minNum);
System.out.println(sumNum);
System.out.println(avgNum);
}
}
显示结果
6.数组复制、反转、查找
1.数组复制
//case 1
package com.rickey.exer;
public class Arrayexer5 {
public static void main(String[] args){
int arr1[]=new int[]{2,3,5,7,11,13,17,19};
int arr2[];
arr2 = arr1; //不能称作数组的复制
for(int i = 0;i < arr2.length;i++){
System.out.print(arr2[i]+"\t");
}
//修改arr1,查看arr2变化
for(int i = 0;i < arr1.length;i++){
if(i % 2 == 0){
arr1[i] = i;
}
}
System.out.print("\n");
for(int i = 0;i < arr2.length;i++){
System.out.print(arr2[i]+"\t");
}
//原因:地址一样
System.out.println("\n"+arr1);
System.out.println(arr2);
}
}
输出结果
//case2
package com.rickey.exer;
public class Arrayexer5 {
public static void main(String[] args){
int arr1[]=new int[]{2,3,5,7,11,13,17,19};
int arr2[] = new int[8];
for(int i = 0;i < arr1.length;i++){
arr2[i] = arr1[i];
}
for(int i = 0;i < arr2.length;i++){
System.out.print(arr2[i]+"\t");
}
//修改arr1,查看arr2变化
for(int i = 0;i < arr1.length;i++){
if(i % 2 == 0){
arr1[i] = i;
}
}
System.out.print("\n");
for(int i = 0;i < arr2.length;i++){
System.out.print(arr2[i]+"\t");
}
//地址不同
System.out.println("\n"+arr1);
System.out.println(arr2);
}
}
输出结果