从Python到C列表函数的转换

2024-04-24 11:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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没有我用过的列表函数。我在做什么有什么简单的方法吗


Tags: 函数in列表forifisdefcheck
1条回答
网友
1楼 · 发布于 2024-04-24 11:18:04

不幸的是,在C语言中,这个问题将是相当困难的。需要为矩阵分配一个内存块。当你想“删除”一行的时候,你必须把所有的东西都上移,释放矩阵底部多余的内存

如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除:

l.erase(pos)  // pos is an iterator at the row you'd like to remove

相关问题 更多 >