C++有一个已按由小到大排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。(要求用指针实现)
- 提问者网友:相思故
- 2021-04-27 21:53
- 二级知识专家网友:心与口不同
- 2021-04-27 22:30
#include <iostream.h>
void main()
{
int a[5]={2,4,6,8,10},b[200];
int *p,*s;
int n=0,m,i,j,tem;
p=a;
s=b;
for(i=0;i<5;i++)
{
*s++=*p++;
}
cout<<"插入数字(输入0结束):";
while(1)
{
cin>>m;
if(m==0)
break;
n++;
*s++=m;
}
for(i=0;i<5+n;i++)
{
for(j=i;j<5+n;j++)
{
if(b[i]>b[j])
{
tem=b[i];
b[i]=b[j];
b[j]=tem;
}
}
}
for(i=0;i<5+n;i++)
cout<<b[i]<<" ";
cout<<endl;
}
- 1楼网友:浪女动了心
- 2021-04-28 00:01
二分查找+插入排序
- 2楼网友:白日梦制造商
- 2021-04-27 23:06
程序代码:
#include <iostream> using namespace std;
const int MAXNUM = 100; //数组元素最大个数
//排序函数 void Insert(float num,float *arry) { float temper; for (int i=0;i<MAXNUM-1;++i) { if (num < arry[i]) { for (int j = i;j<MAXNUM-1;++j) { temper = arry[j]; arry[j] = num; num = temper; } break; } else { if (arry[i] == 0) { arry[i] = num; } } } }
int main() { float Arry[MAXNUM] = {2,4,6,7,8}; int length = 5; cout<<"初始的数组为: "; for (int i=0;i<length;++i) { cout<<Arry[i]<<" "; } cout<<endl<<endl; float num; bool flag = 1; while (flag) { cout<<"请输入你要插入的数,并按回车:"; cin>>num; Insert(num,Arry); length++; cout<<"排序后的数组为: "; for (int i=0;i<length;++i) { cout<<Arry[i]<<" "; } char s; cout<<endl<<endl<<"是否继续插入数字?(Y/N)"; cin>>s; cout<<endl; switch(s) { case 'n': flag = 0;break; case 'N': flag = 0;break; case 'y': break; case 'Y': break; default: cout<<"输入错误,程序退出!"<<endl; flag = 0;break; } } return 0; }