C++用线性表类将任意两个无序数组合并为一个有序数组并删除其中重复项 错在哪里啊

#include<iostream>#include<string>usingnamespacestd;template<typenameT,intsize>classS... #include<iostream>
#include<string>
using namespace std;
template<typename T,int size>class SeqList{
T slist[size];
int Maxsize;
int last;
public:
SeqList(){last=-1;Maxsize=size;}
void insert(T);
void rank();
void combine(T);
void show();
};
template<typename T,int size>void SeqList<T,size>::insert(T a){ //无序插入
if(last==Maxsize-1){
Maxsize+=1;
}
last++;
slist[last]=a;
}
template<typename T,int size>void SeqList<T,size>::combine(T a){
int n,i,j;
bool in;
T c[20];
for(n=0;n<10;n++)
c[n]=slist[n];
in=true;
for(i=0;i<10;i++){
for(j=0;j<10;j++)
if(a==slist[i])
in=false;
if(in)
c[n++]=a;
}
}
template<typename T,int size>void SeqList<T,size>::rank(){//升序排列
int i,j;
int x;
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(slist[j]<slist[i]){
x=slist[i];
slist[i]=slist[j];
slist[j]=x;
}
}
}
}
template<typename T,int size>void SeqList<T,size>::show(){
for(int i=0;i<=last;i++)cout<<slist[i]<<" ";
}
int main(){
SeqList<int,10>l1,l2; //空表(数组)
int a;
int temp[10];
cout<<"请依次输入十个数"<<endl;
for(int i=0;i<10;i++){ //调用插入函数生成无序表
cin>>a;
l1.insert(a); //插在当前表的末尾
}
l1.show(); cout<<endl;
cout<<"请再依次输入十个数"<<endl;
for(i=0;i<10;i++){ //调用插入函数生成升序表
cin>>a;
temp[i]=a; //插在当前表的适当位置
}
for(i=0;i<10;i++)
cout<<temp[i]<<endl;
for(int j=0;j,10;j++)
l1.combine(temp[j]);
l1.rank();
l1.show(); cout<<endl;
return 0;
}
展开
 我来答
_rongmashengya
推荐于2016-06-20 · 超过21用户采纳过TA的回答
知道答主
回答量:77
采纳率:100%
帮助的人:36.7万
展开全部
//主函数中的 i 定义的为局部变量,解决方案有二:
一:
int main()
{
SeqList<int,10>l1,l2; //空表(数组)
int a;
int temp[10];
cout<<"请依次输入十个数"<<endl;
for(int i=0;i<10;i++){ //调用插入函数生成无序表 -------------定义 i
cin>>a;
l1.insert(a); //插在当前表的末尾
}
l1.show(); cout<<endl;
cout<<"请再依次输入十个数"<<endl;
for(int i=0;i<10;i++) -------------定义 i
{ //调用插入函数生成升序表
cin>>a;
temp[i]=a; //插在当前表的适当位置
}
for(int i=0;i<10;i++) -------------定义 i
cout<<temp[i]<<endl;
for(int j=0;j,10;j++)
l1.combine(temp[j]);
l1.rank();
l1.show(); cout<<endl;
return 0;
}

二:

int main()
{
int i; -------------定义 i
SeqList<int,10>l1,l2; //空表(数组)
int a;
int temp[10];
cout<<"请依次输入十个数"<<endl;
for(i=0;i<10;i++){ //调用插入函数生成无序表
cin>>a;
l1.insert(a); //插在当前表的末尾
}
l1.show(); cout<<endl;
cout<<"请再依次输入十个数"<<endl;
for(i=0;i<10;i++)
{ //调用插入函数生成升序表
cin>>a;
temp[i]=a; //插在当前表的适当位置
}
for(i=0;i<10;i++)
cout<<temp[i]<<endl;
for(int j=0;j,10;j++)
l1.combine(temp[j]);
l1.rank();
l1.show(); cout<<endl;
return 0;
}
追问
还是调试不出来
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击93步自动完成vlookup匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式