练习1
package com.xin.Array;
import java.util.Scanner;
public class Arraytext1
{
public static void main (String[] args){
/*输入5个数,根据5个数得到其中最大的数并且把不同的等级划分
//从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10等级为'A'
成绩>=最高分-20等级为'B'
成绩>=最高分-30等级为'C'
其余等级为'D’
提示:先读入学生人数,
根据人数创建int数组,存放学生成绩。
*/
//1.使用Scanner读取学生个数
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生个数");
int count = scan.nextInt();
System.out.println("请输入"+count+"个学生成绩");
//2.使用数组存储学生成绩 动态初始化
int[] score = new int[5];
//3.给数组赋值
for(int i = 0;i < score.length;i++){
score[i] = scan.nextInt();
}
//4.遍历数组找出最大值,先定义一个最大值
int maxScore = 0;
for(int i = 0;i<score.length;i++){
//跟max做比较 如果比max大就把值给max
if(maxScore < score[i]){
maxScore = score[i];
}
}
System.out.println("最高分是"+maxScore);
//5.遍历数组给每个成绩划分等级。
//定义一个char类型 输出a,b,c,d
char level; //因为下面使用了level ,所以可以不给它赋值
for(int i = 0;i < score.length;i++){
if(maxScore - 10 <= score[i]){
level = 'A';
}else if (maxScore - 20 <= score[i]){
level = 'B';
}else if (maxScore - 30 <= score[i]){
level = 'C';
}else{
level = 'D';
}
System.out.println("student"+i+"总成绩"+score[i]+"等级为"+level);
}
}
}
二维数组练习2
package com.xin.Array;
public class ArrayTxtx2
{
public void text1(){
//创建一个二维数组,并且赋值
int[][] array = {{3,5,8},{12,9},{7,0,6,4}};
//创建计算总和
int sum = 0;
//遍历二维数组 可以for.each也可以使用普通for循环遍历
//方法1
for (int[] a :array){ //a a1为变量名
for(int a1 : a){
System.out.print(a1+"\t");
sum += a1;
}
System.out.println();
}
System.out.println(sum);
//方法2
int sum1 = 0;
for(int i = 0;i < array.length;i++){
for(int j = 0; j < array[i].length;j++){//小于外层的长度。
sum1 += array[i][j]; //加上循环出来的数
}
}
System.out.println(sum1);
}
}
练习3 创建一个6位的一个int型数组,赋值1-30的值且每个值不能相同
package com.xin.Array;
public class ArrayTxet3
{
public void text(){
//1.创建一个6位的一个int型数组,赋值1-30的值且每个值不能相同
int[] array = new int[6];
//2.给数组赋值
for(int i = 0;i< array.length;i++){
array[i] = (int)(Math.random()*30)+1 ; //左闭右开 所以[0-30) 加上1 [0-31) 加上(int)强转
boolean isFlag = true;
//4.判断各个位置不相等使用布尔,并且重新赋值
for(int j = 0; j < i;j++){
do{
if(array[i]==array[j]){
array[i] = (int)(Math.random()*30+1);
}
isFlag = false;
}
while(isFlag);
}
}
//3.遍历数组
for(int a : array){
System.out.print(a+" ");
}
System.out.println();
}
}
练习三 定义一个int型的一维数组,包含10个元素。
赋一些随机整数,然后求出所有元素的
最大值,最小值,和值,平均值,并输出出来。
要求:所有随机数都是两位数。
package com.xin.Array;
public class ArrayText4
{
public void text(){
/*
定义一个int型的一维数组,包含10个元素,
分别赋一些随机整数,然后求出所有元素的
最大值,最小值,和值,平均值,并输出出来。
要求:所有随机数都是两位数。
获取[a-b]的随机数公式
(int)(Math.random()*(b-a+1)+a)
*/
//1.创建一个一维数组
int[] arrays = new int[10];
//2.使用随机数赋值
for(int i = 0;i < arrays.length;i++){
arrays[i] = (int)(Math.random()*(99-10+1)+10);// [10-99]
}
//3.定义最大值,最小值,和值,平均值 保险起见万一数组中有负数使用 arrays[0]
int max = arrays[0];
int min = arrays[0];
int sum = 0;
//4.遍历数组
for (int i=0;i < arrays.length;i++) {
System.out.print(arrays[i]+" ");
if(max < arrays[i]){
max = arrays[i];
}
if(min > arrays[i]){
min = arrays[i];
}
sum += arrays[i];
} System.out.println();
System.out.println("最大值为"+max);
System.out.println("最小值为"+min);
System.out.println("总和"+sum);
System.out.println("平均数为"+(double)sum/10);
}
}