c语言编程实现从顺序表中删除具有最小值的元素(假设唯一),并由函数返回被删除元素的值。空出的位置由最后一个元素填补。
时间: 2024-06-12 10:09:05 浏览: 207
数据结构与算法 c++实现 //删除顺序递增表中的重复元素 //对单链表实现就地逆置 //删除递增单链表中的重复元素
5星 · 资源好评率100%
你可以使用以下的C语言代码来实现从顺序表中删除具有最小值的元素,并返回被删除元素的值:
```c
#include <stdio.h>
#define MAX_SIZE 10
int deleteMin(int arr[], int size) {
if (size == 0) {
printf("顺序表为空,无法删除!\n");
return -1;
}
int minIndex = 0;
int minValue = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < minValue) {
minIndex = i;
minValue = arr[i];
}
}
int deletedValue = arr[minIndex];
arr[minIndex] = arr[size - 1];
return deletedValue;
}
int main() {
int arr[MAX_SIZE] = {10, 5, 8, 3, 6};
int size = 5;
int deletedValue = deleteMin(arr, size);
printf("被删除的元素值为:%d\n", deletedValue);
printf("删除最小值后的顺序表为:");
for (int i = 0; i < size - 1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
被删除的元素值为:3
删除最小值后的顺序表为:10 5 8 6
```
阅读全文