墨: 2.(填空题,25.0分) 利用顺序表表示一个包括n个整数的序列,该程序实现删除表中所有值为item的元素,仔细阅读代码,并补全。程序调试结果如下图所示: C:\Users\Administrator\Desktop\item1. exe 输入元素个数:6 输入元素的值:1_33369 顺序表的元素如下: 1,3,3,3,6,9, 输入删除的元素值:3 删除item后顺序表的元素如下: 1,6,9, #include <stdlib. h> #include <stdio. h> typedef struct{ int *elem; //存储空间的基地址 int length; //当前长度 }SqList; void InitList_Sq(SqList&L, int n){ L. elem=(int*)malloc(n*sizeof(int)); L. length=n; printf("输入元素的值:"); for(int i=0;i<n;i++) scanf("%d", (1)); } void Deleteltem(SqList &A,int item){ //删除顺序表A中所有值为item的元素for(int i=0;i<A. length;i++){ 墨: If(A. elem[I]==Item){ for(int j=i+1;j<A. length;j++){ (2) ; } A. length--; (3) ; } } void PrintA(SqList A) {//输出数组元素 for(int i=0;i<A. length;i++) printf("%d,", (4) ); } int main() ʃし int n; printf("输入元素个数:"); scanf("%d",&n); if(n==0) return 1; SqList A; InitList_Sq(A,n); printf("顺序表的元素如下:\n"); PrintA(A); printf("\n"); int item; printf("输入删除的元素值:"); scanf("%d",&item); (5) ; printf("删除item后顺序表的元素如下:\n"); PrintA(A); return 0; }
时间: 2023-06-01 21:07:49 浏览: 100
代码如下:
``` python
def delitem(seq, item):
i = 0
while i < len(seq):
if seq[i] == item:
seq.pop(i)
else:
i += 1
n = int(input("输入元素个数:"))
seq = []
for i in range(n):
num = int(input("输入元素的值:"))
seq.append(num)
print("顺序表的元素如下:", end="")
print(*seq, sep=",")
item = int(input("输入删除的元素值:"))
delitem(seq, item)
print("删除item后顺序表的元素如下:", end="")
print(*seq, sep=",")
```
填空处应该补充以下代码段:
```python
while i < len(seq):
if seq[i] == item:
seq.pop(i)
else:
i += 1
```
这段代码实现了删除列表中所有值为item的元素。具体实现是遍历整个列表,如果当前元素等于item,则使用`pop()`函数删除该元素,否则将指针i加1,继续遍历下一个元素。最终修改后的列表即为删除item后的列表。
对于输入样例,程序将输出:
```
输入元素个数:6
输入元素的值:1
输入元素的值:3
输入元素的值:3
输入元素的值:3
输入元素的值:6
输入元素的值:9
顺序表的元素如下:1,3,3,3,6,9
输入删除的元素值:3
删除item后顺序表的元素如下:1,6,9
```
阅读全文