HM047 四种矩阵
HM047 四种矩阵
来源: 第 47 集 数组-二维数组定义方式
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
二维数组是在一维之上又加了一个维度:不但有行,还有列,看起来像矩阵。一行格子是一维,多行格子拼起来就是二维。行号、列号都从 \(0\) 起算。访问一个格子要同时写出数组名、行下标和列下标,例如把第 \(0\) 行第 \(0\) 列写成 \(1\)。
定义二维数组通常有四种写法,共同点是都要写出元素类型和数组名:
- 写明行数、列数,再按下标逐个赋值。
- 写明行数、列数,并用嵌套花括号分行给出初值,例如两行三列写成
{{1,2,3},{4,5,6}}。这种写法一眼能看出行列,可读性最高,也最推荐。 - 写明行数、列数,但把全部初值摊在一个花括号里。编译器按列数切分:每满一列就换一行。
- 只写列数、省略行数,同时给出全部初值。编译器按列数推断行数。列数不能省:六个数字可能是 \(1\times 6\)、\(6\times 1\)、\(2\times 3\) 或 \(3\times 2\),不写列数就无法划分。
元素一多,不要复制上百行输出。外层循环走行,内层循环走列。同一行的整数用空格分开,一行结束后再换行。
读入定义方式和数据,按上述规则得到整型矩阵并按行列输出。若第四种写法没有给出列数,输出 INVALID。
输入格式
第一行一个整数 \(op\)(\(1 \le op \le 4\))。
- 若 \(op=1,2,3\):第二行两个整数 \(r\)、\(c\)(\(1 \le r,c \le 10\)),第三行 \(r \times c\) 个整数,按行优先给出。
- 若 \(op=4\):第二行一个整数 \(c\)(\(0 \le c \le 10\)),第三行一个整数 \(k\)(\(0 \le k \le 100\)),第四行 \(k\) 个整数。\(c=0\) 表示漏写列数;否则若 \(k\) 能被 \(c\) 整除且行数在 \(1\) 到 \(10\) 之间,则行数为 \(k/c\)。
每个整数的绝对值不超过 \(10^9\)。
输出格式
若 \(op=4\) 且列数缺失、\(k=0\)、\(k\) 不能被 \(c\) 整除或行数不在 \([1,10]\),输出一行 INVALID。
否则输出 \(r\) 行,每行 \(c\) 个整数,相邻整数之间恰好一个空格,行末换行。
样例
输入 #1
2
2 3
1 2 3 4 5 6
输出 #1
1 2 3
4 5 6
输入 #2
4
0
6
1 2 3 4 5 6
输出 #2
INVALID
说明
样例 1 用第二种(最推荐)写法理解两行三列。若 \(op=4\) 且 \(c=3\)、\(k=6\)、数据为 \(1\ 2\ 3\ 4\ 5\ 6\),编译器按每三列一行推断出两行,输出与样例 1 相同。\(op=1\) 时先定行列再按下标赋值,\(op=3\) 时把六个数字摊在一起再按列切开,结果也相同。
信息
- ID
- 1046
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者