鱼C论坛

 找回密码
 立即注册
查看: 466|回复: 3

[已解决]请问如何生成并打印英语序数词 1st 2nd 3rd

[复制链接]
发表于 2023-8-6 21:23:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
中间有一段 打印提示客户输入工人号码  这个打印提示输入 可以生成英语的序数词那样的吗?  比如Enter the 12nd worker number


package mk;

import java.util.Random;
import java.util.Scanner;

public class ArrayDemo7 {
    public static void main(String[] args) {

        int[] codes = new int[5];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < codes.length; i++) {
            System.out.println("Enter worker number:");
            //这个上面有办法生成英语序数词吗 Enter the 1st/3rd/5th worker number
            int code = sc.nextInt();
            codes[i] = code;
        }
        Random r = new Random();
        for (int i = 0; i < codes.length; i++) {
            int index = r.nextInt(codes.length);
            int temp = codes[index];
            codes[index] = codes[i];
            codes[i] = temp;
        }
        for (int i = 0; i < codes.length; i++) {
            System.out.println(codes[i] + " " );
        }
    }
}
最佳答案
2023-8-6 21:23:56
根据你的要求,我给出了修改后的Java代码,用于生成并打印英语序数词。以下是完整的修改后的代码:
  1. import java.util.Random;
  2. import java.util.Scanner;
  3. public class ArrayDemo7 {
  4.     public static void main(String[] args) {
  5.         int[] codes = new int[5];
  6.         Scanner sc = new Scanner(System.in);
  7.         
  8.         for (int i = 0; i < codes.length; i++) {
  9.             System.out.print("Enter the " + getOrdinal(i+1) + " worker number: ");
  10.             int code = sc.nextInt();
  11.             codes[i] = code;
  12.         }
  13.         
  14.         Random r = new Random();
  15.         for (int i = 0; i < codes.length; i++) {
  16.             int index = r.nextInt(codes.length);
  17.             int temp = codes[index];
  18.             codes[index] = codes[i];
  19.             codes[i] = temp;
  20.         }
  21.         
  22.         for (int i = 0; i < codes.length; i++) {
  23.             System.out.println(codes[i]);
  24.         }
  25.     }
  26.    
  27.     public static String getOrdinal(int number) {
  28.         if (number == 11 || number == 12 || number == 13) {
  29.             return number + "th";
  30.         } else if (number % 10 == 1) {
  31.             return number + "st";
  32.         } else if (number % 10 == 2) {
  33.             return number + "nd";
  34.         } else if (number % 10 == 3) {
  35.             return number + "rd";
  36.         } else {
  37.             return number + "th";
  38.         }
  39.     }
  40. }
复制代码

这段代码会提示用户输入工人号码,并且使用英语序数词(1st、2nd、3rd等)进行提示。在getOrdinal()方法中,我们根据给定的数字判断并返回相应的英语序数词。在输入工人号码时,使用getOrdinal(i+1)来获取工人号码对应的序数词。

希望这个代码能满足你的需求。如果你有任何问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!
英语序数词.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-6 21:23:56 | 显示全部楼层    本楼为最佳答案   
根据你的要求,我给出了修改后的Java代码,用于生成并打印英语序数词。以下是完整的修改后的代码:
  1. import java.util.Random;
  2. import java.util.Scanner;
  3. public class ArrayDemo7 {
  4.     public static void main(String[] args) {
  5.         int[] codes = new int[5];
  6.         Scanner sc = new Scanner(System.in);
  7.         
  8.         for (int i = 0; i < codes.length; i++) {
  9.             System.out.print("Enter the " + getOrdinal(i+1) + " worker number: ");
  10.             int code = sc.nextInt();
  11.             codes[i] = code;
  12.         }
  13.         
  14.         Random r = new Random();
  15.         for (int i = 0; i < codes.length; i++) {
  16.             int index = r.nextInt(codes.length);
  17.             int temp = codes[index];
  18.             codes[index] = codes[i];
  19.             codes[i] = temp;
  20.         }
  21.         
  22.         for (int i = 0; i < codes.length; i++) {
  23.             System.out.println(codes[i]);
  24.         }
  25.     }
  26.    
  27.     public static String getOrdinal(int number) {
  28.         if (number == 11 || number == 12 || number == 13) {
  29.             return number + "th";
  30.         } else if (number % 10 == 1) {
  31.             return number + "st";
  32.         } else if (number % 10 == 2) {
  33.             return number + "nd";
  34.         } else if (number % 10 == 3) {
  35.             return number + "rd";
  36.         } else {
  37.             return number + "th";
  38.         }
  39.     }
  40. }
复制代码

这段代码会提示用户输入工人号码,并且使用英语序数词(1st、2nd、3rd等)进行提示。在getOrdinal()方法中,我们根据给定的数字判断并返回相应的英语序数词。在输入工人号码时,使用getOrdinal(i+1)来获取工人号码对应的序数词。

希望这个代码能满足你的需求。如果你有任何问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 21:23:57 | 显示全部楼层
可以使用一个方法来生成英语的序数词。首先,创建一个方法 getOrdinalNumber ,接收一个整数参数 number ,返回对应的英语序数词。在方法中,首先判断个位数是否为1、2或3,然后根据不同的情况返回对应的序数词。对于其他情况,可以使用默认的序数词规则,即在数字后面添加"th"。以下是修改后的代码:

  1. import java.util.Random;
  2. import java.util.Scanner;

  3. public class ArrayDemo7 {
  4.     public static void main(String[] args) {

  5.         int[] codes = new int[5];
  6.         Scanner sc = new Scanner(System.in);
  7.         for (int i = 0; i < codes.length; i++) {
  8.             System.out.println("Enter worker number:");
  9.             int code = sc.nextInt();
  10.             codes[ i] = code;
  11.         }
  12.         Random r = new Random();
  13.         for (int i = 0; i < codes.length; i++) {
  14.             int index = r.nextInt(codes.length);
  15.             int temp = codes[index];
  16.             codes[index] = codes[ i];
  17.             codes[ i] = temp;
  18.         }
  19.         for (int i = 0; i < codes.length; i++) {
  20.             System.out.println("Enter the " + getOrdinalNumber(codes[ i]) + " worker number");
  21.         }
  22.     }

  23.     public static String getOrdinalNumber(int number) {
  24.         if (number >= 10 && number <= 20) {
  25.             return number + "th";
  26.         } else {
  27.             int lastDigit = number % 10;
  28.             switch (lastDigit) {
  29.                 case 1:
  30.                     return number + "st";
  31.                 case 2:
  32.                     return number + "nd";
  33.                 case 3:
  34.                     return number + "rd";
  35.                 default:
  36.                     return number + "th";
  37.             }
  38.         }
  39.     }
  40. }
复制代码


在上述代码中,我们添加了一个 getOrdinalNumber 方法来生成英语的序数词。在主循环中,使用 getOrdinalNumber 方法来打印提示信息。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 21:24:00 | 显示全部楼层
本帖最后由 Mike_python小 于 2023-8-6 18:25 编辑

要生成并打印英语序数词(1st, 2nd, 3rd),可以编写一个辅助函数来实现。以下是修改后的Java代码:

  1. java
  2. import java.util.Random;
  3. import java.util.Scanner;

  4. public class ArrayDemo7 {
  5.     public static void main(String[] args) {
  6.         int[] codes = new int[5];
  7.         Scanner sc = new Scanner(System.in);
  8.         for (int i = 0; i < codes.length; i++) {
  9.             System.out.println("Enter the " + getOrdinalNumber(i+1) + " worker number:");
  10.             int code = sc.nextInt();
  11.             codes[i] = code;
  12.         }
  13.         sc.close();

  14.         Random r = new Random();
  15.         for (int i = 0; i < codes.length; i++) {
  16.             int index = r.nextInt(codes.length);
  17.             int temp = codes[index];
  18.             codes[index] = codes[i];
  19.             codes[i] = temp;
  20.         }
  21.         for (int i = 0; i < codes.length; i++) {
  22.             System.out.println(codes[i] + " ");
  23.         }
  24.     }

  25.     public static String getOrdinalNumber(int number) {
  26.         if (number % 10 == 1 && number % 100 != 11) {
  27.             return number + "st";
  28.         } else if (number % 10 == 2 && number % 100 != 12) {
  29.             return number + "nd";
  30.         } else if (number % 10 == 3 && number % 100 != 13) {
  31.             return number + "rd";
  32.         } else {
  33.             return number + "th";
  34.         }
  35.     }
  36. }
复制代码


在上述代码中,我们添加了getOrdinalNumber函数来生成英语的序数词。它接受一个整数作为输入,并返回相应的序数词字符串。然后,在用户输入时,我们使用getOrdinalNumber(i+1)来获取正确的序数词提示。这样,打印提示语句就会变成"Enter the 1st/2nd/3rd/4th/5th worker number:"。

运行修改后的代码,用户将能够根据工人编号输入相应的序数词,并按照打乱后的顺序打印出来。

希望这个回答对你有帮助!如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-2 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表