求数组的最大、最小值、总和、平均值以及数组的复制、反转、遍历
public class arr {
public static void main(String[] args) {
int arr[] = new int[] {2,4,5,7,9,23,-21,0,99,85};
//最大值
int max=arr[0];
for(int i=1;i<arr.length;i++) {
if(max<arr[i]) {
max=arr[i];
}
}
System.out.println("最大值为:"+max);
//最小值
int min=arr[0];
for(int i=1;i<arr.length;i++) {
if(min>arr[i]) {
min=arr[i];
}
}
System.out.println("最小值为:"+min);
//总和
int sum=0;
for(int i=0;i<arr.length;i++) {
sum+=arr[i];
}
System.out.println("总和为:"+sum);
//平均值
int avg=0;
avg=sum/arr.length;
System.out.println("平均值为:"+avg);
//数组的复制
//遍历arr
//for(int i=0;i<arr.length;i++) {
//System.out.print(arr[i]+"\t");
//}
//把arr复制给arr1
int arr1[]=new int[arr.length];
for(int i=0;i<arr1.length;i++) {
arr1[i]=arr[i];//复制arr的值,不会更改arr的值
}
System.out.println();
//遍历arr1
//for(int i=0;i<arr1.length;i++) {
//System.out.print(arr1[i]+"\t");
//}
//数组的反转
for(int i=0;i<arr.length/2;i++) {
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
//数组的遍历
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
}
}
运行结果
排序
public class arr {
public static void main(String[] args) {
int arr[] = new int[] {2,4,5,7,9,23,-21,0,99,85};
//冒泡排序 从大到小
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-1-i;j++) {
if(arr[j]<arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println("冒泡从大到小排序后:");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
//直接选择排序 从小到大
for(int i=0;i<arr.length-1;i++) {
int t=i;//默认i处是最小的
for(int j=i;j<arr.length;j++) {
//一旦在i处发现比其小的元素,就记录那个元素的下标
if(arr[t]>arr[j]) {
t=j;
}
}
if(t!=i) {
int temp=arr[t];
arr[t]=arr[i];
arr[i]=temp;
}
}
System.out.println("直接从小到大排序后:");
//数组的遍历
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
}
}
运行结果
二维数组之杨辉三角
/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
打印10行杨辉三角
1、第一行1个元素,第n行n个元素
2、每行第一个元素和最后一个元素都是1
3、从第3行开始,除第一和最后一个元素
y[i][j]=y[i-1][j-1]+y[i-1][j]
*/
public class yang {
public static void main(String[] args) {
int[][] num = new int[10][];
//初始化二维数组
for(int i=0;i<num.length;i++) {
num[i]= new int[i+1];
}
//显式的为二维数组的每个元素赋值
for(int i=0;i<num.length;i++) {
for(int j=0;j<num[i].length;j++) {
num[i][0]=num[i][i]=1;
if(i>1&&j>0&&j<i) {
num[i][j]=num[i-1][j]+num[i-1][j-1];
}
}
}
//遍历二维数组
for(int i=0;i<num.length;i++) {
for(int j=0;j<num[i].length;j++) {
System.out.print(num[i][j]+"\t");
}
System.out.println();
}
}
}
运行结果
学生成绩及等级
/*
从键盘输入学生成绩,找出最高分,并输入学生成绩等级
成绩>=最高分-10 等级为A
成绩>=最高分-20 等级为B
成绩>=最高分-30 等级为C
其余 等级为D
*/
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1、创建Scanner的对象,并从键盘获取学生的个数n
Scanner s = new Scanner(System.in);
System.out.println("请输入学生的个数:");
int count = s.nextInt();
//2、根据输入学生的个数n,创建一个长度为n的int型的数组
int[] scores = new int[count];
int maxscore = 0;
//3、依次从键盘获取n个学生的成绩,并赋给相应的数组元素,并获取n个学生中的最高分
System.out.println("请输入"+count+"个成绩:");
for(int i = 0;i<scores.length;i++) {
int score = s.nextInt();
scores[i]=score;
if(scores[i]>maxscore) {
maxscore=scores[i];
}
}
//根据学生成绩划分相应等级,并输出
System.out.println("最高分为:"+maxscore);
char level;
for(int i = 0;i<scores.length;i++) {
if(scores[i]>=maxscore-10) {
level='A';
}else if(scores[i]>=maxscore-20) {
level='B';
}else if(scores[i]>=maxscore-30) {
level='C';
}else {
level='D';
}
System.out.println("student "+i+" score is "+scores[i]+" grade is "+level);
}
}
}
运行结果