从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值,空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行
void delMin(int* arr, int len) {
if (!len) {
printf("数组为空\n");
}
int min = *arr, minPos = 0;
for (int i = 0; i < len; i++){
if (min > *(arr + i)) {
min = *(arr + i);
minPos = i;
}
}
//找到最小值之后,我们需要进行的操作是:将最后一个元素给它挪到之前最小值元素哪里去
*(arr + minPos) = *(arr + len - 1);
*(arr + len - 1) = NULL;
}
int main() {
int n;//手动输入数组的元素的个数
printf("请输入数组长度:n=");
scanf("%d", &n);
int* arr = (int*)malloc(sizeof(n));//动态分配数组
printf("请输入数组的元素值:\n");
for (int i = 0; i < n; i++)
{
scanf("%d", arr + i);
}
return 0;
}
王道408c语言实现1
最新推荐文章于 2024-09-29 07:36:50 发布