从顺序表表中删除具有最小值的元素(假设不唯一)并由函数返回被删元素值

顺序表表中删除具有最小值的元素(假设不唯一),并由函数返回被删元素值
空出的位置由最后一个元素填补,若顺序表为空,则显示出错误信息并退出运行

//顺序表定义及初始化
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MaxSize 10//定义最大长度

int InitArr[10] = { 3,9,2,5,4,8,6,1,7,10 };

typedef struct {
	int data[MaxSize];//用静态的数据存放数据元素
	int length;//顺序表当前长度
}Sqlist;//顺序表的类型定义

//初始化一个顺序表
void InitList(Sqlist* L)
{
	for (int i = 0;i < MaxSize;i++)
	{
		L->data[i] = InitArr[i];//将所有数据元素设置为默认初始值
	}
	L->length = 10;//顺序表初始长度为0
}
//从顺序表表中删除具有最小值的元素(假设不唯一),并由函数返回被删元素值
//空出的位置由最后一个元素填补,若顺序表为空,则显示出错误信息并退出运行

int del_min(Sqlist* L) {
	int i = 0;
	int min = (*L).data[i];//标记最小元素
	int index = 0;//标记最小元素下标

	//找最小元素位置
	for (i = 0;i < (*L).length;i++) {
		if ((*L).data[i] < min) {
			min = (*L).data[i];
			index = i;
		}
	}
	
	//删最小元素——即把最小元素后面的元素前移,length-1
	for (i = index;i < (*L).length-1;i++) {
		(*L).data[i] = (*L).data[i + 1];
	}
	(*L).length--;
	return min;
}
int main() 
{
	Sqlist L;
	InitList(&L);//初始化一个顺序表:3,9,2,5,4,8,6,1,7,10
	printf("初始顺序表为:");
	print(&L);

	printf("\n");
	int min = del_min(&L);
	printf("进行一次最小元素的删除,被删元素为:%d",min);
	printf("删除后顺序表为:");
	print(&L);

	printf("\n");
	min = del_min(&L);
	printf("进行两次最小元素的删除,被删元素为:%d", min);
	printf("删除后顺序表为:");
	print(&L);
	return 0;
}

在这里插入图片描述


http://www.niftyadmin.cn/n/5121262.html

相关文章

【C语言】指针那些事之数组传参和指针传参的区别

C语言系列 文章目录 目录 C语言系列 文章目录 前言 一&#xff0c;数组传参和指针传参 1.1一维数组传参 1.2二维数组传参 1.3一级指针传参 1.4当一个函数的参数部分为一级指针的时候&#xff0c;函数可以接收什么参数 1.5二级指针传参 1.6当函数的参数为二级指针的时…

SylixOS BSP开发(八)

初始化FPU、MMU和Cache组件 本来想在不初始化这些部件的情况下把SylixOS先启动起来感受下&#xff0c;结果测试发现如果MMU不使能的话&#xff0c;系统启动过程中线程无法进行调度emm。。。所以只好把这一章节提前来讲了。这三个组件的初始化都是在bspInit.c中进行的。 1. FPU初…

商超便利店经营小程序商城的作用是什么

店铺流量越来越低&#xff0c;线上平台入驻费用也不低&#xff0c;营销方式单一&#xff0c;店铺内经营数据无法统计&#xff0c;客户进店难&#xff0c;消费难&#xff0c;复购更难&#xff0c;越来越多的商超便利商家开始通过数字化商城解决问题。 通过【雨科】平台搭建商超便…

PHP 危险函数2-代码执行语句

代码执行语句 eval() 不是函数&#xff0c;不能被动态调用&#xff0c;并且需要以 ;结束 直接输出&#xff0c;不执行 <?php$code"phpinfo();";echo $code;?>eval() 语句执行 <?php$code"phpinfo();";eval($code); // eval 不是函数&am…

Linux下安装部署Redis

简介 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 redis的特点就是&#xff1a;快&#xff0c;可以基于内存存储数据并提供超低延迟、超快的检索速度一般用于在系统中提供快速缓存的能力。 安装 1. 配置EPEL仓库 EPEL 的…

竞赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

电力巡检/电力抢修行业解决方案:AI+视频技术助力解决巡检监管难题

一、行业背景 随着国民经济的蓬勃发展&#xff0c;工业用电和居民用电需求迅速增加&#xff0c;电厂、变电站、输电线路高负荷运转&#xff0c;一旦某个节点发生故障&#xff0c;对生产、生活造成巨大的影响。目前电力行业生产现场人员、设备较多&#xff0c;而生产监督员有限…

“人类高质量数据”如何训练计算机视觉模型?

人类的视觉系统可以复制吗&#xff1f; 答案是肯定的。 计算机视觉 (Computer Vision) 技术的不断普及&#xff0c;让机器识别和处理图像就像人的大脑一样&#xff0c;且速度更快、更准确。 机器像人类一样去“思考” 计算机视觉 (Computer Vision) 是近年来人工智能增长最快…