HM042 三种货架
HM042 三种货架
来源: 第 42 集 数组-一维数组定义方式
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
货架是一段**连续**内存上的格子,格子里只能放**同一类型**的数据:要么全是整数,要么全是浮点数,不能前几格放电池、后一格塞橡皮。给货架起名时,规则和普通变量一样,而且不要和普通变量重名,否则分不清访问的是货架还是变量。
建货架有且只有三种合法写法:
- 先定长度再赋值:写明元素个数 \(n\),再按下标往格子里填。下标从 \(0\) 起算,长度为 \(n\) 时合法下标是 \(0,1,\ldots,n-1\),下标 \(n\) 访问不到。访问写法是「数组名 + 方括号 + 下标」。
- 定长度并给部分初值:写明长度 \(n\) 的同时给出前 \(k\) 个初值(\(k \le n\))。没填完的剩余格子会自动用 \(0\) 补齐。
- 只给初值、省略长度:初值写全后,编译器会按初值个数推断长度。若既不写长度、也不给任何初值,类型不完整,货架无法定义。
元素一多,不要复制上百行输出语句,应当用 for 循环让下标从 \(0\) 递增到 \(n-1\)(循环条件写成 \(i < n\))。
读入建架方式与数据,按上述规则得到整型数组,再从下标 \(0\) 循环到 \(n-1\),依次输出全部元素。
输入格式
第一行一个整数 \(op\)(\(1 \le op \le 3\)),表示建架方式。
- 若 \(op=1\):第二行一个整数 \(n\)(\(1 \le n \le 100\)),第三行 \(n\) 个整数,表示先定长度再逐个赋值。
- 若 \(op=2\):第二行两个整数 \(n\)、\(k\)(\(1 \le k \le n \le 100\)),第三行 \(k\) 个整数,表示长度为 \(n\)、只初始化前 \(k\) 个元素。
- 若 \(op=3\):第二行一个整数 \(k\)(\(0 \le k \le 100\));若 \(k \ge 1\) 则第三行 \(k\) 个整数作为初值并推断长度;若 \(k=0\) 表示既无长度也无初值。
每个整数的绝对值不超过 \(10^9\)。
输出格式
若 \(op=3\) 且 \(k=0\),输出一行 INVALID。
否则输出一行 \(n\) 个整数,相邻整数之间恰好一个空格,行末换行。
样例
输入 #1
1
5
10 23 14 10 50
输出 #1
10 23 14 10 50
输入 #2
2
5 3
12 13 10
输出 #2
12 13 10 0 0
说明
样例 1 是第一种定义:长度 \(5\),按下标 \(0\) 到 \(4\) 赋值后循环输出。样例 2 是第二种定义:长度 \(5\) 但只给了前三个初值,后两格补 \(0\)。若 \(op=3\) 且初值为 \(90\ 87\ 16\ 15\ 14\ 13\ 12\ 11\ 10\),则推断长度 \(9\),输出这九个数;若 \(op=3\) 且 \(k=0\),输出 INVALID。
信息
- ID
- 1041
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者