四.请补充程序,并进行输入输出设计。 #include <iostream.h> #include<stdlib.h> typedef int ElemType; struct List { ElemType list[50]; int size; }; ElemType DMValue(List&L) //从线性表中删除具有最小值的元素并由函数返回,空出的位置 //由最后一个元素填补,若线性表为空则显示出错信息并退出运行 { int k=0; ElemType x; for(int i=1;i<L.size;i++){ ElemType y=L.list[i]; if(y<x){ k=i;} }
时间: 2024-01-13 07:02:48 浏览: 28
补充程序如下:
```
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef int ElemType;
struct List {
ElemType list[50];
int size;
};
ElemType DMValue(List& L) {
int k = 0;
ElemType x;
for(int i = 0; i < L.size; i++) {
ElemType y = L.list[i];
if(i == 0 || y < x) {
x = y;
k = i;
}
}
if(L.size == 0) {
cout << "Error: List is empty." << endl;
exit(1);
}
L.size--;
L.list[k] = L.list[L.size];
return x;
}
int main() {
List L;
L.size = 4;
L.list[0] = 10;
L.list[1] = 5;
L.list[2] = 8;
L.list[3] = 3;
cout << "Original list: ";
for(int i = 0; i < L.size; i++) {
cout << L.list[i] << " ";
}
cout << endl;
ElemType min = DMValue(L);
cout << "Minimum value removed: " << min << endl;
cout << "Updated list: ";
for(int i = 0; i < L.size; i++) {
cout << L.list[i] << " ";
}
cout << endl;
return 0;
}
```
程序运行结果为:
```
Original list: 10 5 8 3
Minimum value removed: 3
Updated list: 10 5 8
```
解释:
这个程序定义了一个结构体`List`,包含了一个数组`list`和一个整数`size`。`DMValue`函数的作用是从数组中删除最小值,并返回该最小值。如果数组为空,则会输出错误信息并退出程序。
在`main`函数中,我们创建了一个包含四个元素的数组`L`,并输出了原始的数组内容。然后,我们调用`DMValue`函数来删除最小值,并输出删除的值和更新后的数组内容。