例如,我有一个项目列表,让我们说:
现在我的显示器上有3个项目的限制。所以说,如果我想显示Papaya
,那么它必须在第二个插槽中,而Melon应该在第一个插槽上,因为它的限制为3。
+---+---------+---------+
| 1 | Apple | Melon |
| 2 | Orange | Papaya |
| 3 | Banana | |
+-----------------------+
现在我无法将其转换为代码。例如,如果我想获得插槽Banana
应该是什么,我应该能够获得3
。如果我想知道插槽Melon
应该是什么,我会得到1
。谁能帮我吗?为了将这个想法转换为代码形式,我需要做些什么。
答案 0 :(得分:3)
如果您的阵列和插槽都是从零开始的,您可以通过简单的计算得到插槽:
slot = arrayindex mod numslots
如果你的数组是基于一个的,那么它会变得有点复杂,但你只需在模数运算之前减1就可以解决这个问题:
slot = (arrayindex - 1) mod numslots
而且,如果您的广告位是基于一方的,只需在上述两种情况下向slot
添加1。
slot = (arrayindex mod numslots) + 1
slot = ((arrayindex - 1) mod numslots) + 1
因此,例如,假设基于一个数组和基于零的插槽(其中三个,0到2),木瓜的索引为5.使用:
slot = (arrayindex - 1) mod numslots
slot = ( 5 - 1) mod 3
slot = 4 mod 3
slot = 1
因此它将进入第二个时段。
答案 1 :(得分:0)
如何使用MOD
运算符(http://msdn.microsoft.com/en-us/library/se0w9esz(v=vs.80).aspx)
slot = (index_of_item MOD items_on_display) + 1
答案 2 :(得分:0)
在伪代码中
column = 0
row = item_number
while row > max_rows
row = row - max_rows
column = column + 1
运行此操作后,行和列将设置为正确的(基于0的)位置。您可以使用mod运算符更有效地实现。
答案 3 :(得分:0)
for(int k=0; k<totalFruits; k++)
{
for(i=1; i<4; i++)
{
fruitNumber = i;
}
}