ZYa222999 2024-03-16 16:51 采纳率: 33.3%
浏览 23
已结题

洛谷提交代码的格式问题


package Easy_;
import java.util.Scanner;

public class SpecialYear {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
         * 今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大1,
         * 我们称满足这样条件的年份为特殊年份。
         * 输入 5 个年份,请计算这里面有多少个特殊年份。
         */
        Scanner scan = new Scanner(System.in);
        int[] arr = new int[5];
        for(int i = 0;i < 5;i++) {
            int year = scan.nextInt();
            arr[i] = year;
        }
        
        int count = 0;
        for(int i = 0;i < 5;i++) {
            
            int a = arr[i] % 10;// 个位数
            int b = (arr[i] / 10) % 10;//十位数
            int c = (arr[i] / 100) % 10;//百位数
            int d = arr[i] / 1000;//千位数
            if(arr[i] >= 1000 && arr[i] <= 9999) {
                if((a - 1) == c && b == d) {
                    count++;
                }
            }
            
            
        }
        System.out.println(count);
        
                
    }

}

请问为什么这段代码可以在eclipse上面实现,却在洛谷刷题提交代码后编译失败

img

  • 写回答

5条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-16 16:51
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    根据截图所示的错误信息,洛谷编译器无法识别代码中使用的中文字符。因此,需要将代码中的中文字符转换为对应的英文字符,或者使用Unicode编码来表示中文字符。 下面是将代码中的中文字符替换为英文字符的示例代码:
    package Easy_;
    import java.util.Scanner;
    public class SpecialYear {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            /*
             * 今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大1,
             * 我们称满足这样条件的年份为特殊年份。
             * 输入 5 个年份,请计算这里面有多少个特殊年份。
             */
            Scanner scan = new Scanner(System.in);
            int[] arr = new int[5];
            for(int i = 0; i < 5; i++) {
                int year = scan.nextInt();
                arr[i] = year;
            }
            
            int count = 0;
            for(int i = 0; i < 5; i++) {
                int a = arr[i] % 10; // 个位数
                int b = (arr[i] / 10) % 10; //十位数
                int c = (arr[i] / 100) % 10; //百位数
                int d = arr[i] / 1000; //千位数
                if(arr[i] >= 1000 && arr[i] <= 9999) {
                    if((a - 1) == c && b == d) {
                        count++;
                    }
                }
            }
            System.out.println(count);
        }
    }
    

    需要注意的是,有些编程语言(比如Java)默认使用的字符编码是UTF-8,可以直接使用中文字符。但在一些特殊情况下,如在洛谷网站上提交代码,需要注意使用英文字符或Unicode编码。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月29日
  • 创建了问题 3月16日

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题