
若数组a中的n个元素已按升序排列,现将一个新数x插入到数组a中,插入后数组a的元素仍然保持升序。
#include<iostream.h>classInsSort{inta[100];//存放排好序的整数序列intn;//数组实际元素个数public:InsSort(...
#include<iostream.h>
class InsSort
{
int a[100];//存放排好序的整数序列
int n;//数组实际元素个数
public:
InsSort(int b[],int size)
{
int i;
for(i=0;i<100;i++)
a[100]=b[100];
n=size;
}
void insert(int x)//将x插入到数组a中
{
int i;
for(i=n;i>0;i--)
{
if(a[i]>x)
a[i+1]=a[i];continue;
if(a[i]<=x)
a[i+1]=x;break;
}
}
void show()
{
int i;
for(i=0;i<n+1;i++)
cout<<a[i]<<endl;
cout<<n<<endl;
}
};
void main()
{
int b[100]={1,3,5},n;
int c[100]={0,1,2,3,5,8,10};
InsSort arr(b,n);
for(int i=0;i<7;i++)
arr.insert(c[i]);
arr.show();
}
请求大家帮我看看这个程序问题出在哪里,为什么运行结果都不对。。。 展开
class InsSort
{
int a[100];//存放排好序的整数序列
int n;//数组实际元素个数
public:
InsSort(int b[],int size)
{
int i;
for(i=0;i<100;i++)
a[100]=b[100];
n=size;
}
void insert(int x)//将x插入到数组a中
{
int i;
for(i=n;i>0;i--)
{
if(a[i]>x)
a[i+1]=a[i];continue;
if(a[i]<=x)
a[i+1]=x;break;
}
}
void show()
{
int i;
for(i=0;i<n+1;i++)
cout<<a[i]<<endl;
cout<<n<<endl;
}
};
void main()
{
int b[100]={1,3,5},n;
int c[100]={0,1,2,3,5,8,10};
InsSort arr(b,n);
for(int i=0;i<7;i++)
arr.insert(c[i]);
arr.show();
}
请求大家帮我看看这个程序问题出在哪里,为什么运行结果都不对。。。 展开
展开全部
#include<iostream>
using namespace std;
//将a插入到排好序的数组data[n]中,插入后长度为n+1
void InsertSort(int data[], int &n, int a)//形参n为引用
{
int i;
for(i=0;i<n;i++)
{
if(a<=data[i])
break;
}
//如果插入的位置是最后的n时,直接令data[n]=a;否则后面元素后移一位
if(i==n)
data[n]=a;
else
{
for(int j=n;j>i;j--)
data[j]=data[j-1];
data[i]=a;
}
n++;//插入后,数组元素个数增加1个
}
//每五个数一行输出
void Print(int data[],int n)
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<"\t";
if((i+1)%5==0)
cout<<endl;
}
cout<<endl;
}
void main()
{
int data[10],nNum=0,m;
for(int i=0;i<10;i++)
{
cout<<"enter the "<<i+1<<" number: ";
cin>>m;
InsertSort(data,nNum,m);
}
Print(data,nNum);
}
using namespace std;
//将a插入到排好序的数组data[n]中,插入后长度为n+1
void InsertSort(int data[], int &n, int a)//形参n为引用
{
int i;
for(i=0;i<n;i++)
{
if(a<=data[i])
break;
}
//如果插入的位置是最后的n时,直接令data[n]=a;否则后面元素后移一位
if(i==n)
data[n]=a;
else
{
for(int j=n;j>i;j--)
data[j]=data[j-1];
data[i]=a;
}
n++;//插入后,数组元素个数增加1个
}
//每五个数一行输出
void Print(int data[],int n)
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<"\t";
if((i+1)%5==0)
cout<<endl;
}
cout<<endl;
}
void main()
{
int data[10],nNum=0,m;
for(int i=0;i<10;i++)
{
cout<<"enter the "<<i+1<<" number: ";
cin>>m;
InsertSort(data,nNum,m);
}
Print(data,nNum);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询