编写程序。先读入10个整数,再把它们按从小到大的次序排列起来;最后再读入一个整数K,并将K插入到该整数

(接上面)数列中,插入后的数列仍然从小到大排列。这就是题目了···... (接上面)数列中,插入后的数列仍然从小到大排列。
这就是题目了···
展开
 我来答
luanqibazao227
推荐于2018-02-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:6109
采纳率:57%
帮助的人:3368万
展开全部
你好!

参考:
我的算法是先定义一个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

来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式