删除顺序表中一个区间的元素 | C语言代码

题目:

已知一组数据,采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素。

输入格式:

输入包含三行数据,第一行是表中元素个数,第二行是顺序表的各个元素,第三行是区间x和y。

输出格式:

删除元素值在[x,y]之间的所有元素后,输出新的顺序表。(最后无空格)

输入样例:

10

55 11 9 15 67 12 18 33 6 22

10 20

输出样例:

55 9 67 33 6 22

代码:

cpp 复制代码
#include <stdio.h>

// 定义删除函数
void delete (int list[], int *n, int x, int y) {
	// 定义删除后顺序表的索引,在遍历删除元素后,new_size就成为删除元素后顺序表的长度
	int new_size = 0;

	// 遍历删除区间内的元素
	for (int i = 0; i < *n; i++) {
		if (list[i] < x || list[i] > y) {
			list[new_size] = list[i];
			new_size++;
		}
	}

	// 赋值删除后顺序表的长度
	*n = new_size;
}

int main() {
	// 定义顺序表长度
	int n;
	scanf("%d", &n);

	// 建立顺序表
	int list[100];
	for (int i = 0; i < n; i++) {
		scanf("%d", &list[i]);
	}

	// 输入要删除元素的区间
	int x, y;
	scanf("%d %d", &x, &y);

	// 由于在进行删除元素后,要使用删除后数组的长度进行遍历,因此数组长度需要传址
	delete (list, &n, x, y);

	// 遍历删除元素后的顺序表
	for (int i = 0; i < n; i++) {
		printf("%d", list[i]);
		if (i < n - 1) {
			printf(" ");
		}
	}
	printf("\n");

	return 0;
}
相关推荐
卑微的小鬼3 分钟前
Go 语言结合 Redis 实现固定窗口、滑动窗口、令牌桶和漏桶限流算法的示例代码
开发语言·redis·golang
ylfhpy16 分钟前
Python常见面试题的详解16
开发语言·python·面试
handsomestWei17 分钟前
java实现多图合成mp4和视频附件下载
java·开发语言·音视频·wutool·图片合成视频·视频附件下载
宝哥的菜鸟之路27 分钟前
Python 数据分析概述 ①
开发语言·python·数据分析
全栈若城28 分钟前
03 Python字符串与基础操作详解
java·开发语言·python
EnigmaCoder31 分钟前
单链表:数据结构中的灵活“链条”
c语言·数据结构·学习
honghongstand1 小时前
代码随想录D52-53 图论 Python
开发语言·python·图论
sjsjs111 小时前
【数据结构-并查集】力扣1722. 执行交换操作后的最小汉明距离
数据结构·算法·leetcode
过客猫20221 小时前
使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应
开发语言·后端·golang
Ronin-Lotus1 小时前
程序代码篇---C/C++中的变量存储位置
c语言·c++···静态区·文字常量区·变量存储位置