当前位置: 代码迷 >> 综合 >> Day04 JavaBasic03
  详细解决方案

Day04 JavaBasic03

热度:90   发布时间:2023-12-24 07:48:13.0
  1. 根据键盘录入的数值1,2,3,…7输出对应的星期一,星期二,星期三…星期日。(用switch语句实现,代码+运行结果截图)
package com.cskaoyan.homework;import java.util.*;
public class work01 {
    public static void main(String[] args){
    System.out.println("Please input a number:");Scanner sc = new Scanner(System.in);int a = sc.nextInt();String str;switch(a){
    case 1:str = "Monday";break;case 2:str = "Tuesday";break;case  3:str = "Wednesday";break;case 4:str = "Thusday";break;case 5:str = "Friday";break;case 6:str = "Saturday";break;case 7:str = "Sunday";break;default:str = "please input a number again!";}System.out.println(str);}
}
  1. 判断一个5位数是否是回文数(比如12321) 个位等于万位 十位等于千位 提交代码+运行结果截图
package com.cskaoyan.homework;import java.util.*;
public class work02 {
    public static void main(String[] args){
    System.out.println("请输入一个5位数:");Scanner sc = new Scanner(System.in);int num = sc.nextInt();int[] a = new int [5];for(int i = 0;i < 5;i++){
    a[i] = num % 10;num = num / 10;}if(a[0] == a[4] && a[1] == a[3]){
    System.out.println("你输入的5位数是回文数。");}else{
    System.out.println("你输入的5位数不是回文数。");}}
}
  1. 利用switch语句,实现对学生分数评级的功能。
    程序的输入是一个int类型的变量score,代表学生的分数取值范围[0,100]
    当分数范围为 0=< score <60 输出 不及格
    当分数范围为 60=< score <70 输出 及格
    当分数范围为 70=< score <80 输出 中
    当分数范围为 80=< score <90 输出 良
    当分数范围为 90=< score <=100 输出优
    提示:可合理利用case穿越 提交代码+运行结果截图哈
package com.cskaoyan.homework;import java.util.*;
public class work03 {
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);int score = sc.nextInt();score /= 10;switch(score){
    case 10:case 9:System.out.println("优");break;case 8:System.out.println("良");break;case 7:System.out.println("中");break;case 6:System.out.println("及格");break;case 5:case 4:case 3:case 2:case 1:case 0:System.out.println("不及格");break;default:System.out.println("请重新输入合理范围的分数!");break;}}
}

附加题:

  1. 在给定的字符数(只包含ascii码表中包含的128个字符)组中找到,第一个只出现一次的字符(假设所给字符数组中一定存在只出现一次的字符,
    第一个是指从左到右的字符出现的顺序)
package com.cskaoyan.homework;import java.util.*;
public class add01 {
    public static void main(String[] args){
    System.out.println("请输入一个字符串:");Scanner sc = new Scanner(System.in);String str = sc.nextLine();char[] arr = str.toCharArray(); //把字符串转化成字符数组int[] count = new int [128];//初始化for(int i =  0 ;i < 128;i++)  //用来统计字符数量的数组初始化为0count[i] = 0;//计数for(int i = 0;i < arr.length;i++){
    count[arr[i]]++;}//查找for(int i = 0;i < arr.length;i++){
    if(count[arr[i]] == 1) {
    System.out.println("第一个只出现一次的字符是" + arr[i]);break;}}}
}
  1. 在一个整形数组里,除了两个数字之外,其他数字都出现了2次。请写程序找到这两个只出现了一次的数字。
package com.cskaoyan.homework;public class add02 {
    public static void main(String[] args){
    int a[] = {
    1, 2, 3, 4, 1, 2};int tag[] = {
    1, 1, 1, 1, 1, 1};    //tag数组为标记数组,1表示是所要寻找的数字,tag数组所有元素初始化为1.//双重循环比较,若两元素相等,则把它们的tag值标记为0。for(int i = 0;i < a.length-1;i++){
    for(int j = i + 1 ;j < a.length;j++){
    if(a[i] == a[j]){
    tag[i] = 0;tag[j] = 0;}}}//遍历结束后,tag值为1的元素即为只出现一次的元素for(int i = 0;i < tag.length;i++){
    if(tag[i] == 1){
    System.out.println(a[i]);}}}
}