描述
猜生日的日期。通过对以下几组数的判断是否,“系统”猜测生日。 set1= 1 3 5 7, 9 11 13 15,17 19 21 23,25 27 29 31; 要求用多维数组的形式输出判断,(提高)或用弹出窗口的方式。 |
输入
Y或N 0或1 |
输出
所算生日日期 |
难度
较难 |
输入输出示例
(上为第一种方式)
(上为第二种方式) |
第一种方式(多维数组)
import java.util.Scanner; public class GuessBirthdayUsingConfirmationDialog { public static void main(String[] args) { int day=0; int answer; int[][][] dates = { {{ 1, 3, 5, 7},{ 9, 11, 13, 15},{17, 19, 21, 23},{25, 27, 29, 31}}, {{ 2, 3, 6, 7},{10, 11, 14, 15},{18, 19, 22, 23},{26, 27, 30, 31}}, {{ 4, 5, 6, 7},{12, 13, 14, 15},{20, 21, 22, 23},{28, 29, 30, 31}}, {{ 8, 9, 10, 11},{12, 13, 14, 15},{24, 25, 26, 27},{28, 29, 30, 31}}, {{16, 17, 18, 19},{20, 21, 22, 23},{24, 25, 26, 27},{28, 29, 30, 31}}}; Scanner input = new Scanner(System.in); for (int i = 0; i < 5; i++) { System.out.println("Is your birthday in Set " + (i + 1) + "?"); for (int j = 0; j < 4; j++) { for (int k = 0; k < 4; k++) { System.out.printf("%4d", dates[i][j][k]); } System.out.println(); } System.out.print("\nEnter 0 for No and 1 for Yes: "); answer =input.nextInt(); if(answer==1){ day += dates[i][0][0]; } } System.out.print("你的生日是 "+day+"号!"); } }
第二种方式(出现选择窗口)
import javax.swing.*; public class GuessBirthdayUsingConfirmationDialog { public static void main(String[] args) { String set1=" 1 3 5 7\n"+" 9 11 13 15\n"+"17 19 21 23\n"+"25 27 29 31"; String set2=" 2 3 6 7\n"+"10 11 14 15\n"+"18 19 22 23\n"+"26 27 30 31"; String set3=" 4 5 6 7\n"+"12 13 14 15\n"+"20 21 22 23\n"+"28 29 30 31"; String set4=" 8 9 10 11\n"+"12 13 14 15\n"+"24 25 26 27\n"+"28 29 30 31"; String set5="16 17 18 19\n"+"20 21 22 23\n"+"24 25 26 27\n"+"28 29 30 31"; int day=0; int answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set1); if (answer==JOptionPane.YES_OPTION)day+=1; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set2); if (answer==JOptionPane.YES_OPTION)day+=2; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set3); if (answer==JOptionPane.YES_OPTION)day+=4; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set4); if (answer==JOptionPane.YES_OPTION)day+=8; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set5); if (answer==JOptionPane.YES_OPTION)day+=16; JOptionPane.showMessageDialog(null,"你的生日是 "+day+"号!"); } }