本文主要记录arr数组用法、count计算、arr倒排序技巧案例
package day4homework; import java.util.Scanner; /* 从键盘上输入10个整数,合法值位1、2或3,不是这3个数则为非法数字。试编程统计每个整数和非法数字的个数。 1.创建键盘录入对象 2.定义长度为10的int类型的数组 3.定义int类型的变量count1(统计1的个数)、count2(统计2的个数)、count3(统计3的个数)、count4(统计非法数字的个数) 4.利用for循环给数组元素赋值 5.利用for循环遍历数组 (1)获取当前元素 (2)使用if进行判断 a.如果等于1 count1++ b.否则,如果等于2 count2++ c.否则,如果等于3 count3++ d.否则 count4++ 6.打印统计结果*/ public class ArrayCount4 { public static void main(String[] args) { int[] arr = new int[10]; int count = 0; int count1 = 0; int count2 = 0; for (int i=0;i<10;i++) { Scanner s = new Scanner(System.in); int putdate = s.nextInt(); arr[i] = putdate; if (arr[i]==1) { count++; }else if (arr[i]==2) { count1++; }else { count2++; } } System.out.println("1:"+count); System.out.println("2:"+count1); System.out.println("不合法:"+count2); } }
输出结果:
package day4homework; import java.util.Scanner; /* 假设有一个长度为5的数组,数组元素通过键盘录入,如下所示: int[] arr = {1,3,-1,5,-2} 要求: 创建一个新数组newArr[],新数组中元素的存放顺序与原数组中的元素逆序,并且如果原数组中的元素值小于0, 在新数组中按0存储。最后输出原数组和新数组中的内容 1.创建键盘录入对象 2.定义长度为5的int类型的数组arr 3.利用for循环通过键盘录入给数组元素赋值 4.定义长度为5的int类型的新数组newArr,定义int类型的变量index=0,用来表示新数组的元素索引 5.倒着遍历原数组 (1)定义int类型的变量num,并将数组当前元素的值赋值给num (2)使用if判断num的值 a.如果num>=0,直接将num赋值给新数组的当前元素,index++ b.否则直接将0复制给新数组的当前元素,index++ */ public class Array_DaoXu5 { public static void main(String[] args) { int[] arr = new int[5]; System.out.println("请输入:"); for(int i=0;i<=4;i++) { Scanner s = new Scanner(System.in); int putdate = s.nextInt(); arr[i] = putdate; System.out.println(arr[i]); } int[] arr2 = new int[5]; int count = -1; for(int i=4;i>=0;i--) { count++;//count 从0加到4 if(arr[i]>=0) { arr2[count] = arr[i]; }else { arr2[count] = 0; } System.out.println(arr2[count]); } } } //public class Test5 { // public static void main(String[] args) { // //定义一个数组,用来接收数据 // int[] arr = new int[5]; // //创建键盘录入对象 // Scanner sc = new Scanner(System.in); // //键盘录入数据,将获取到的数据存入到数组中 // for(int i = 0; i < arr.length; i++) { // System.out.println("请输入第" + (i + 1) + "个数据:"); // //获取键盘录入数据 // int a = sc.nextInt(); // arr[i] = a; // } // //定义新数组,用来存储要求的数据,长度和源数组一致 // int[] newArr = new int[arr.length]; // //遍历源数组 // for(int i = 0; i < arr.length; i++) { // //倒着获取每一个元素 // int a = arr[arr.length - 1 - i]; // //判断该元素是否是负数,如果是,给新元素赋0 // if(a < 0) { // newArr[i] = 0; // } else {//如果不是,将该元素赋值给新数组 // newArr[i] = a; // } // } // //打印结果 // System.out.println("原数组内容:"); // for(int i = 0; i < arr.length; i++) { // System.out.print(arr[i] + " "); // } // System.out.println(); // System.out.println("新数组内容:"); // for(int i = 0; i < newArr.length; i++) { // System.out.print(newArr[i] + " "); // } // } //}
输出结果
package day4homework; import org.omg.Messaging.SYNC_WITH_TRANSPORT; import java.util.Scanner; /* 假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password), 最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。 如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。 如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。 */ public class ArrayATM { public static void main(String[] args) { System.out.println("请输入密码:"); int password = 123456; for(int i=0;i<3;i++) { Scanner s = new Scanner(System.in); int putdate = s.nextInt(); if(putdate == password) { System.out.println("恭喜,输入正确!"); while (true) { System.out.println("请输入取款金额:"); int many = s.nextInt(); int many2 = 0; if (many%10%10==0) { many2 = many; if(many2/100<=10&many2/100>0) { System.out.println("请取走现金:"+many2); break; }else { System.out.println("输入失败,请重新输入"); break; } }else { System.out.println("输入失败,请重新输入2"); } } break; }else { if(i==2) { System.out.println("密码错误,请取卡~~"); break; } System.out.println("输入错误,请重新输入:"); } } } }
输出结果: