删除顺序表中一个区间的元素 | 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 分钟前
图漾相机C++语言---Sample_V1(4.X.X版本)完整参考例子(待完善)
开发语言·c++·数码相机
Derrick__133 分钟前
Python常用三方模块——Pillow
开发语言·python·pillow
失散1343 分钟前
软件设计师——03 数据结构(下)
数据结构·软考·图论·软件设计师
yiqiqukanhaiba2 小时前
Linux编程笔记2-控制&数组&指针&函数&动态内存&构造类型&Makefile
数据结构·算法·排序算法
woshihonghonga2 小时前
【Ubuntu 20.04升级python3.9后终端打不开的bug】
linux·开发语言·python
王家视频教程图书馆2 小时前
C# asp.net模板代码简单API请求
开发语言·c#·asp.net
数据牧羊人的成长笔记2 小时前
python爬虫进阶版练习(只说重点,selenium)
开发语言·chrome·python
编程攻城狮2 小时前
第 5 天:C 语言运算符与表达式 —— 数据处理的工具集
c语言·开发语言·学习
come112342 小时前
Go Modules 包管理 (Go 模块)
开发语言·后端·golang
FserSuN3 小时前
python模块导入冲突问题笔记
开发语言·python