编写一个算法,将顺序表A(有n个元素,且各元素均不为0)拆分成两个顺序表。使A中所有大于0的元素都存入B
答案:1 悬赏:60 手机版
解决时间 2021-11-15 06:14
- 提问者网友:wodetian
- 2021-11-14 19:00
编写一个算法,将顺序表A(有n个元素,且各元素均不为0)拆分成两个顺序表。使A中所有大于0的元素都存入B
最佳答案
- 五星知识达人网友:过活
- 2021-11-14 19:43
#include
#define max 10
typedef int elemtype;
typedef elemtype sqlist[max];
int create(sqlist a) //创建一个顺序表,返回表中含有元素个数的值n
{
int n,i;
cout<<"输出一个顺序表:"< cout<<" 输入元素的个数:"< cin>>n;
for(i=0;i {
cout<<" 输入第"< cin>>a[i];
}
return n;
}
void disp(sqlist a,int n) //输出顺序表的值
{
int i;
cout<<"输出顺序表:"< for(i=0;i cout< cout< }
void split(sqlist a,int n,sqlist b,int *nb,sqlist c,int *nc)//由于要传递两个数值,所以不可以用return语句,而是采用通过指针来传递数值
{
int i,x=0,y=0;
for(i=0;i {
if(a[i]>0)
{
b[x]=a[i];
x++;
}
else
{
c[y]=a[i];
y++;
}
}
(*nb)=x; //将x的值用指针来传递
(*nc)=y; //将y的值用指针来表示
}
void main()
{
int n,nb,nc;
sqlist a,b,c;
n=create(a);
disp(a,n);
split(a,n,b,&nb,c,&nc); //通过指针来传递数值
nc=n-nb;
disp(b,nb);
disp(c,nc);
}
#define max 10
typedef int elemtype;
typedef elemtype sqlist[max];
int create(sqlist a) //创建一个顺序表,返回表中含有元素个数的值n
{
int n,i;
cout<<"输出一个顺序表:"<
for(i=0;i
cout<<" 输入第"< cin>>a[i];
}
return n;
}
void disp(sqlist a,int n) //输出顺序表的值
{
int i;
cout<<"输出顺序表:"<
void split(sqlist a,int n,sqlist b,int *nb,sqlist c,int *nc)//由于要传递两个数值,所以不可以用return语句,而是采用通过指针来传递数值
{
int i,x=0,y=0;
for(i=0;i
if(a[i]>0)
{
b[x]=a[i];
x++;
}
else
{
c[y]=a[i];
y++;
}
}
(*nb)=x; //将x的值用指针来传递
(*nc)=y; //将y的值用指针来表示
}
void main()
{
int n,nb,nc;
sqlist a,b,c;
n=create(a);
disp(a,n);
split(a,n,b,&nb,c,&nc); //通过指针来传递数值
nc=n-nb;
disp(b,nb);
disp(c,nc);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯