2.2.3-1
题目:
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被
删除的值。空出的位置由最后一个元素填补,若顺序表为空,则
显示出错信息并退出运行。
代码如下
#include <iostream>
using namespace std;
#define Elemtype int
#define maxsize 50
typedef struct Sqlist
{
Elemtype data[maxsize];
int length=0;
}Sqlist;
Sqlist del(Sqlist L)
{
int min=L.data[0];
int temp;
for(int i=1;i<L.length;i++)
{
if(min>L.data[i])
{
min=L.data[i];
temp=i;
}
}
cout<<"temp"<<temp<<endl;
L.data[temp]=L.data[L.length-1];
L.length--;
cout<<"被删除的最小数是"<<min<<endl;
return L;
}
int main()
{
struct Sqlist L;
int n;
cout<<"请输入数据个数"<<endl;
cin>>n;
if(n<=0)
{
cout<<"出错"<<endl;
return 0;
}
else
{
cout<<"输入值"<<endl;
int num;
for(int i=0;i<n;i++)
{
cin>>num;
L.data[i]=num;
L.length++;
}
L=del(L);
cout<<"删除后数组"<<endl;
for(int i=0;i<L.length;i++)
cout<<L.data[i]<<" ";
cout<<endl;
}
}
本次代码问题:
1.结构体内未初始化导致出错。
明天见!