L = [[" " for i in range(10)] for j in range(10)]
for i in range (10):
L[9][i]="*"
for i in range (10):
L[8][i]="1"
for i in range (10):
L[7][i]="*"
for i in range (10):
L[6][i]="3"
for i in range (10):
L[5][i]="*"
print(L)
print()
def Check_Lines(l):
for i in range (10):
x=l[i].count("*")
if x == 10:
print ("LINE IS FULL")
del l[i]
l.reverse()
l.append([" "," "," "," "," "," "," "," "," "," "])
l.reverse()
Check_Lines(L)
print (L)
我用Python编写了上述函数,因为我更熟悉Python语言。它所做的是搜索一个10乘10的列表,如果一行被*填充,那么它将删除它并在顶部放置一个新的空行
我知道c没有我用过的列表函数。我在做什么有什么简单的方法吗
不幸的是,在C语言中,这个问题将是相当困难的。需要为矩阵分配一个内存块。当你想“删除”一行的时候,你必须把所有的东西都上移,释放矩阵底部多余的内存
如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除:
相关问题 更多 >
编程相关推荐