c语言中竖条到横条的转换

c语言中竖条到横条的转换,c,C,我想做一个程序,在那里我发送一个数字列表,指示酒吧的高度。例如,“1 5 3”表示一根长度为1的杆,然后是一根高度为5的杆,然后是3。我想把它转换成横杆和它们的位置。“1 5 3”将是一个长度为3的条,然后是一个长度为2的条,另一个为2,一个为1,另一个为1。这将被表示为“[0,3]@1”,其中1是高度,0是起点,3是终点。其他4个是“[1,3]@2”,“[1,3]@3”,“[1,2]@4”和“[1,2]@5” 有人对如何实现这一点有大致的了解吗?像psuedo代码这样的想法已经很好了,所以我知

我想做一个程序,在那里我发送一个数字列表,指示酒吧的高度。例如,“1 5 3”表示一根长度为1的杆,然后是一根高度为5的杆,然后是3。我想把它转换成横杆和它们的位置。“1 5 3”将是一个长度为3的条,然后是一个长度为2的条,另一个为2,一个为1,另一个为1。这将被表示为“[0,3]@1”,其中1是高度,0是起点,3是终点。其他4个是“[1,3]@2”,“[1,3]@3”,“[1,2]@4”和“[1,2]@5”

有人对如何实现这一点有大致的了解吗?像psuedo代码这样的想法已经很好了,所以我知道从哪里开始了。

伪代码:

读取输入,生成: W、 输入的数量。 H、 最大输入。 Heights,一个包含每个条的高度的数组,从索引0开始。 对于从0到H-1的y: 将CurrentState设置为空。 对于从0到W-1的x: 如果CurrentState为空: 如果y<高度[x]: 将CurrentState设置为已占用。 打印“[”、x和“,”。 其他: 如果高度[x] Read inputs, producing: W, the number of inputs. H, the maximum input. Heights, an array with the height of each bar, starting with index 0. For y from 0 to H-1: Set CurrentState to Empty. For x from 0 to W-1: If CurrentState is Empty: If y < Heights[x]: Set CurrentState to Occupied. Print "[", x, and ",". Else: If Heights[x] <= y: Set CurrentState to Empty. Print x, ")@", y, and end-of-line or other desired delimiter.