编写程序。先读入10个整数,再把它们按从小到大的次序排列起来;最后再读入一个整数K,并将K插入到该整数
1个回答
展开全部
你好!
参考:
我的算法是先定义一个11个元素的数组并把先读入的10个数存入1--10下标的数组变量中。当读入k时比较k与每一个数的大小,k>a[i]则a[i]前移一个下标,相反则k存入a[i-1](a[0]的作用就是保证下标前移时保证数组不会越界)
下面是代码:
#include <iostream>
using namespace std;
void main()
{int a[11],i,j,t,k;
for(i=1;i<11;i++) //以a[1]开始存储第一个元素,存十个数直到数组下标为11.再以冒泡法排序
{cout<<"请输入数据组中的第"<<i<<"个数据"<<endl;
cin>>a[i];}
for(i=1;i<10;i++)
for(j=1;j<11-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
cout<<"下面是排序后的数组"<<endl; //数的输出每四个数输出为一行
for(i=1;i<11;i++)
{cout.width(4);
cout<<a[i];
if(i%4==0)
cout<<endl;}
cout<<endl;
cout<<"请输入要插入的数K:"<<endl;
cin>>k;
for(i=1;i<11;i++)
/*从第一个数a[1]开始啊a[i]与k比较大小,若k大则a[i]向前移一个
数(若a[1]要前移则移到a[0]),若k小则k存在a[i]前一个数中*/
{if(a[i]<k)
a[i-1]=a[i];
else
{a[i-1]=k;break;}
}
if(i==11)
a[10]=k; //循环的跳出可能是i=11时(当k大于a[10]时),则需要对a[11]另赋值k
cout<<"插入K后的数组是:"<<endl;
for(i=0;i<11;i++)
{cout.width(4);
cout<<a[i];
if((i+1)%4==0)
cout<<endl;}
cout<<endl;
}
参考:
我的算法是先定义一个11个元素的数组并把先读入的10个数存入1--10下标的数组变量中。当读入k时比较k与每一个数的大小,k>a[i]则a[i]前移一个下标,相反则k存入a[i-1](a[0]的作用就是保证下标前移时保证数组不会越界)
下面是代码:
#include <iostream>
using namespace std;
void main()
{int a[11],i,j,t,k;
for(i=1;i<11;i++) //以a[1]开始存储第一个元素,存十个数直到数组下标为11.再以冒泡法排序
{cout<<"请输入数据组中的第"<<i<<"个数据"<<endl;
cin>>a[i];}
for(i=1;i<10;i++)
for(j=1;j<11-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
cout<<"下面是排序后的数组"<<endl; //数的输出每四个数输出为一行
for(i=1;i<11;i++)
{cout.width(4);
cout<<a[i];
if(i%4==0)
cout<<endl;}
cout<<endl;
cout<<"请输入要插入的数K:"<<endl;
cin>>k;
for(i=1;i<11;i++)
/*从第一个数a[1]开始啊a[i]与k比较大小,若k大则a[i]向前移一个
数(若a[1]要前移则移到a[0]),若k小则k存在a[i]前一个数中*/
{if(a[i]<k)
a[i-1]=a[i];
else
{a[i-1]=k;break;}
}
if(i==11)
a[10]=k; //循环的跳出可能是i=11时(当k大于a[10]时),则需要对a[11]另赋值k
cout<<"插入K后的数组是:"<<endl;
for(i=0;i<11;i++)
{cout.width(4);
cout<<a[i];
if((i+1)%4==0)
cout<<endl;}
cout<<endl;
}
参考资料: http://zhidao.baidu.com/question/154292783.html
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询