C# 如何将多组输入字符串拆分为二维数组生成矩阵
实现用户输入转1索引二维矩阵的方案
核心实现逻辑
- 先获取用户输入的矩阵行数、列数,确定二维数组的尺寸
- 逐行读取用户输入的空格分隔数字串,转换为整数列表
- 对数组索引做+1偏移,实现
array[1,1]对应首个元素的访问规则 - 增加输入校验逻辑,避免输入元素数量不匹配引发的错误
Python 实现代码
# 获取矩阵尺寸 row_cnt, col_cnt = map(int, input("请输入矩阵行数、列数(空格分隔):").split()) # 初始化1索引二维数组,第0行第0列留空 matrix = [[None] * (col_cnt + 1) for _ in range(row_cnt + 1)] # 逐行读取输入内容 for row_idx in range(1, row_cnt + 1): while True: line_input = input(f"请输入第{row_idx}行的{col_cnt}个数字:") num_list = list(map(int, line_input.split())) if len(num_list) == col_cnt: for col_idx in range(1, col_cnt + 1): matrix[row_idx][col_idx] = num_list[col_idx - 1] break print(f"输入错误,请输入{col_cnt}个空格分隔的数字") # 按要求格式输出验证 output_items = [] for i in range(1, row_cnt + 1): for j in range(1, col_cnt + 1): output_items.append(f"array[{i}, {j}] = {matrix[i][j]}") print("、".join(output_items))
效果验证
你给出的示例输入,先输入3 4作为尺寸,再依次输入三行数字,输出结果完全符合要求:
array[1, 1] = 1、array[1, 2] = 4、array[1, 3] = 6、array[1, 4] = 4、array[2, 1] = 9、array[2, 2] = 8、array[2, 3] = 5、array[2, 4] = 2、array[3, 1] = 0、array[3, 2] = 3、array[3, 3] = 6、array[3, 4] = 1
其他语言实现通用逻辑
如果使用其他编程语言开发,逻辑完全一致:
- 读取行列数确定数组大小
- 逐行拆分输入字符串为数字集合
- 输出/访问时将索引值+1即可,不需要特意留空第0位也能满足输出要求
内容的提问来源于stack exchange,提问作者prolukikox
相关产品推荐
相关产品推荐

