题目1:一维数组的应用
从控制台输入6名员工的工资装入数组
遍历输出。
计算出6名员工的总工资和平均工资
工资使用double类型
思路提示
循环外定义变量存储工资的和,然后在循环体中使用“+=”累加数组中每个元素。
Scanner sc=new Scanner(System.in);
Double[] gongZi=new Double[6];
double sum=0;//总工资
double avg=0;//平均工资
for (int i = 0; i < 6; i++) {
System.out.print("请输入第"+(i+1)+"名员工的工资:");
gongZi[i]=sc.nextDouble();
sum+=gongZi[i];
}
for (int i = 0; i < gongZi.length; i++) {
System.out.println("第"+(i+1)+"名员工的工资为:"+gongZi[i]);
}
System.out.println("六名员工工资和为:"+sum);
avg=sum/gongZi.length;
System.out.println("六名员工平均工资为:"+avg);
题目2:一维数组的应用
需求:
从控制台输入小组成员的姓名,然后遍历输出小组成员的姓名。
思路提示:
首先确定小组成员,动态初始化数组
根据输入的姓名给数组赋值。
遍历字符串数组
Scanner sc=new Scanner(System.in);
String[] nameArr=new String[5];
for (int i = 0; i < 5; i++) {
System.out.println("请输入第"+(i+1)+"名小组成员的姓名:");
nameArr[i]=sc.next();
}
for (int i = 0; i < nameArr.length; i++) {
System.out.println("第"+(i+1)+"名小组成员的姓名:"+nameArr[i]);
}
题目3:一维数组的应用
需求:
查找元素:查找班级指定同学姓名。
思路分析:
定义一个空数组,将班级中十位同学的名字存到数组中。
从键盘任意输入一个名字,判断该同学是否是这个班级的同学。
String[] nameArr= {"淳淳","星星","宇宇","吉吉","艺艺","学学","云云","扫扫","一一","泉泉"};
boolean cunZai=false;
System.out.println("请输入姓名:");
Scanner sc=new Scanner(System.in);
String str=sc.next();
for (int i = 0; i < nameArr.length; i++) {
if (str.equals(nameArr[i])) {
System.out.println("是这个班级的同学");
cunZai=true;
break;
}
}
if(cunZai==false){
System.out.println("不是这个班级的同学");
}
题目4:一维数组的应用
案例介绍:
定义一个有7个元素的数组,从键盘任意输入一个数,判断是否在数组中存在, 如果存在,提示“猜对了”,否则输出“Sorry!!”。
需求说明:
数组元素为图中规定数据
键盘输入数据
用两种方式实现
int[] numArr = {1,6,8,9,54,66,88};
boolean cunZai=false;
System.out.println("请输入猜的数字:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
for (int i = 0; i < numArr.length; i++) {
if (num==numArr[i]) {
System.out.println("猜对了");
cunZai=true;
break;
}
}
if(cunZai==false){
System.out.println("Sorry");
}
题目5:一维数组的应用
有这样一个数列:12,23,13,44,123,456
求这个数列的最小值
int[] arr = {12,23,13,44,123,456};
int min=arr[0];
for(int i=0;i<arr.length;i++){
if(arr[i]<min){
min=arr[i];
}
}
System.out.println("最小数为"+min);
(进阶)题目6:一维数组的应用
案例需求:完成学生管理系统
案例思路:
通过键盘录入学生成绩存入成绩数组。
通过调用方法实现最高分,最低分,总分,
平均分及成材率的功能。
Scanner sc=new Scanner(System.in);
double[] fenShuArr=new double[7];
for (int i = 0; i < fenShuArr.length; i++) {
System.out.println("请输入第"+(i+1)+"科分数:");
fenShuArr[i]=sc.nextDouble();
}
double max=fenShuArr[0];//最高分
double min= fenShuArr[0];//最低分
double sum=0;//总分
double avg=0;//平均分
double chengCai=0;//成材率
for (int i = 0; i < fenShuArr.length; i++) {
if( fenShuArr[i]<min){
min=fenShuArr[i];
}else if(fenShuArr[i]>max){
max=fenShuArr[i];
}
sum+=fenShuArr[i];
}
avg=sum/fenShuArr.length;
chengCai=avg/100;
System.out.println("这位同学的最高分为:"+max+"最低分为:"+min);
System.out.println("这位同学的平均分为:"+avg+"成材率为:"+chengCai);
(进阶)题目7:二维数组的应用
需求:
从键盘输入2名学生的数学,语文,英语成绩放入二维数组,然后遍历输出。
思路提示:
动态初始化二维数组(两行三列)
使用for循环从键盘输入数据,给二维数组元素赋值
For循环中依次输入数学,语文,英语成绩。输入后通过下标赋值给数组元素
使用两层for循环遍历数组
double[][] arr = new double[2][3];
//arr1[0] = new int[]{1, 2,3};
//arr1[1] = new int[]{3, 4,4};
String[] keMuArr={"数学","语文","英语"};
Scanner sc=new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.println("请输入第"+(i+1)+"名同学的"+keMuArr[j]+"成绩:");
double chengJi=sc.nextDouble();
arr[i][j]=chengJi;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.println("第"+(i+1)+"名同学的"+keMuArr[j]+"成绩:"+arr[i][j]);
}
}
题目8:一维数组的应用
定义一个数组,长度为5并给数组分别赋值{“张三”、“李四”,“王五”,“赵六”,“钱七”},然后通过for循环进行对数组进行遍历。
String[] arr=new String[5];
arr[0]="张三";
arr[1]="李四";
arr[2]="王五";
arr[3]="赵六";
arr[4]="钱七";
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
(进阶)题目9:选择结构、循环、一维数组的应用
自定义一个数组里面有7个元素的数组,从键盘任意输入一个数,判断是否在数组中存在, 如果存在,提示“猜对了”,否则输出“Sorry!!”。
int[] numArr = {1,6,8,9,54,66,88};
boolean cunZai=false;
System.out.println("请输入猜的数字:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
for (int i = 0; i < numArr.length; i++) {
if (num==numArr[i]) {
System.out.println("猜对了");
cunZai=true;
break;
}
}
if(cunZai==false){
System.out.println("Sorry");
}
题目10:一维数组的应用
依次从键盘录入数组元素,然后把数组元素逆序输出 (就是把元素对调)
int[] arr=new int[10];
Scanner sc=new Scanner(System.in);
int num=0;
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第"+(i+1)+"个数字:");
num=sc.nextInt();
arr[i]=num;
}
for (int i = arr.length-1; i >=0 ; i--) {
System.out.println("第"+(arr.length-i)+"个数字:"+arr[i]);
}
(拔高)题目11:综合练习
评分标准:
(1) 正确定义类(5分)
(2) 控制台录入10名学生的成绩(5分)
(3) 将学生的成绩存入数组(5分)
(4) 计算平均分(10分)
(5) 计算成绩总和(10分)
(6) 计算成材率(10分)
(7) 求出最大成绩(5分)
Scanner sc=new Scanner(System.in);
double[] fenShuArr=new double[10];
double sum=0;//总分
double avg=0;//平均分
double chengCai=0;//成材率
for (int i = 0; i < fenShuArr.length; i++) {
System.out.println("请输入第"+(i+1)+"个同学分数:");
fenShuArr[i]=sc.nextDouble();
}
double max=fenShuArr[0];//最高分
double min= fenShuArr[0];//最低分//记得放在数组有值之后
System.out.println("各个同学的得分是:");
for (int i = 0; i < fenShuArr.length; i++) {
System.out.print(fenShuArr[i]+"\t");
if(fenShuArr[i]>90){
chengCai++;
}else if( fenShuArr[i]<min){
min=fenShuArr[i];
}else if(fenShuArr[i]>max){
max=fenShuArr[i];
}
sum+=fenShuArr[i];
}
avg=sum/fenShuArr.length;
chengCai=chengCai*100/fenShuArr.length;
System.out.println("\n最高分为:"+max);
System.out.println("最低分为:"+min);
System.out.println(fenShuArr.length+"位同学的成绩和为:"+sum);
System.out.println(fenShuArr.length+"位同学的平均分为:"+avg);
System.out.println(fenShuArr.length+"位同学的成材率为:"+chengCai+"%");