You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

学生成绩程序:向二维数组添加用户数据的问题

解决Student Grades程序中二维数组重复添加数据的问题

嘿,看来你在给Student Grades程序添加学生数据时遇到了重复问题,我来帮你理清问题根源并解决它!

问题根源分析

你遇到的"重复添加相同数据15次"的问题,大概率是因为每次循环都在复用同一个存储单条学生数据的容器(比如一维数组、列表),而不是为每个学生创建新的容器。因为数组/列表属于引用类型,当你把它添加到二维数组时,实际上是把它的内存地址存了进去——如果一直用同一个容器,最后二维数组里的所有元素都会指向同一个内存空间,自然全是重复的数据。

解决方案步骤

要解决这个问题,核心就是为每个学生单独创建新的数据容器,然后填充对应的数据,再添加到二维数组里。具体步骤如下:

  • 在循环的每一次迭代中,创建一个新的一维数组(或列表)来存储当前学生的姓名和4门成绩
  • 为这个新容器填充该学生的专属数据(可以是手动输入、从文件读取,或者模拟生成)
  • 将这个新容器添加到二维数组中

具体代码示例

下面用两种常见语言举例,你可以对应自己使用的语言调整:

Java 示例

错误写法(导致重复)

String[] studentData = new String[5]; // 只创建了一次数组
String[][] classGrades = new String[15][5];

for (int i = 0; i < 15; i++) {
    // 每次都修改同一个数组的值,然后重复添加
    studentData[0] = "Jeremy Folson";
    studentData[1] = "85";
    studentData[2] = "99";
    studentData[3] = "33";
    studentData[4] = "44";
    classGrades[i] = studentData;
}

正确写法

String[][] classGrades = new String[15][5];

for (int i = 0; i < 15; i++) {
    // 每次循环都新建一个一维数组,保证每个学生的数据容器独立
    String[] studentData = new String[5];
    // 这里替换为获取真实学生数据的逻辑,比如读取输入、数据库查询
    // 示例:生成不同的模拟数据
    studentData[0] = "Student " + (i + 1);
    studentData[1] = String.valueOf(75 + i);
    studentData[2] = String.valueOf(82 + i);
    studentData[3] = String.valueOf(68 + i);
    studentData[4] = String.valueOf(91 + i);
    classGrades[i] = studentData;
}

Python 示例

错误写法(导致重复)

student_data = ["Jeremy Folson", "85", "99", "33", "44"]
class_grades = []

for _ in range(15):
    # 重复添加同一个列表的引用
    class_grades.append(student_data)

正确写法

class_grades = []

for i in range(15):
    # 每次循环创建新的列表,存储当前学生数据
    student_data = [
        f"Student {i+1}",
        str(70 + i),
        str(85 + i),
        str(65 + i),
        str(90 + i)
    ]
    class_grades.append(student_data)

额外验证建议

添加完数据后,你可以通过循环遍历二维数组并打印每一行,来确认每个学生的数据都是唯一的:

// Java 验证代码
for (String[] student : classGrades) {
    System.out.println(String.join(", ", student));
}
# Python 验证代码
for student in class_grades:
    print(", ".join(student))

内容的提问来源于stack exchange,提问作者Tawfek A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:05:43