D286 Java基础PA:代码输出正确但测试不通过求排查
问题排查:Java程序输出格式不符合要求导致测试失败
你的代码计算逻辑是正确的,但输出格式不符合题目要求,这是测试判错的核心原因:
题目明确要求三个乘积用空格分隔、结尾换行,而你的代码会在最后一个结果后多输出一个空格——循环内每次执行System.out.print(results + " ");,三次循环后会输出结果1 结果2 结果3 (注意结尾的多余空格),再执行System.out.println();,最终输出的格式和判题系统的预期不匹配,在线判题对空格、换行这类格式细节通常要求严格。
修正方案一:调整输出顺序(先输出第一个结果,后续结果前加空格)
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); int starting_num = scnr.nextInt(); int multiplier = scnr.nextInt(); int result = starting_num * multiplier; // 先输出第一个结果,无前置空格 System.out.print(result); // 循环输出剩下2个结果,每个结果前加空格 for(int i = 1; i < 3; ++i) { result = result * multiplier; System.out.print(" " + result); } System.out.println(); } }
修正方案二:预存结果后一次性拼接输出
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); int starting_num = scnr.nextInt(); int multiplier = scnr.nextInt(); int result1 = starting_num * multiplier; int result2 = result1 * multiplier; int result3 = result2 * multiplier; // 直接按要求格式拼接后输出,避免多余空格 System.out.println(result1 + " " + result2 + " " + result3); } }
两种方案都能保证输出结果为结果1 结果2 结果3(结尾无多余空格,仅换行),完全匹配题目格式要求。
内容的提问来源于stack exchange,提问作者Yuniel G
相关产品推荐
相关产品推荐

