Java中如何正确声明初始化4×3的double类型二维数组scores
问题分析
- 行列逻辑搞反:题目要求4行对应4名学生、3列对应3次考试,你错误将4名学生的第一次考试成绩全部存入了第一行(
scores[0]),导致第一行长度为4,不符合每行3个元素的要求。 - 每行长度不符合规范:剩下的3行你只初始化了1个元素,导致每行长度只有1,远达不到3列的要求,最终整个数组结构变成4行长度分别为4、1、1、1的不规则二维数组,和要求的4×3规则结构完全不符。
- 写法不符合习题要求:习题明确要求使用嵌套初始化列表的方式完成初始化,你使用的是逐行动态分配的写法,不符合习题提示的格式要求。
正确实现
import java.util.Arrays; public class ScoreTest { public static void main(String[] args) { // 嵌套初始化列表:外层4个元素对应4名学生,内层每个子数组3个元素对应3次考试 // 每个子数组第一个元素为对应学生的第一次考试成绩,后两个位置统一填充-1 double[][] scores = { {80.4, -1, -1}, {96.2, -1, -1}, {100.0, -1, -1}, {78.9, -1, -1} }; System.out.println(Arrays.deepToString(scores)); } }
运行输出结果为:[[80.4, -1.0, -1.0], [96.2, -1.0, -1.0], [100.0, -1.0, -1.0], [78.9, -1.0, -1.0]]
完全符合4行3列的结构要求,也满足习题的初始化规则。
内容的提问来源于stack exchange,提问作者Jean Baptiste Asong
相关产品推荐
相关产品推荐

