您的位置:首页 > 其它

hduoj 2019数列有序

2017-03-13 23:39 232 查看
#include<iostream>

using namespace std;
int main()
{
int n,m,j;
int a[101];
while(scanf("%d %d",&n,&m)!=EOF)
{
if(n==0&&m==0)
break;
int i=0,j=0,flag=0;   /*注意定义的flag在这里是作为一个找到位置的标志,防止持续的比较交换,
且切记flag要设立在for循环外 */
for(i=0,j=0;i<n;i++,j++) //这里的i和j的用法十分巧妙,i仅用作循环次数不参与数组,j参与
{
cin>>a[j];

if(a[j]>m&&flag==0)  //找到之后将下一个数赋值为m,同时要j++要使用两次!
{
a[j+1]=a[j];
a[j]=m;
flag=1;
j++;
}
}

for(i=0;i<=n;i++)//这也是新的一种输出的方式,和之前用的标记法比起来 这个更加简便
{
if(i>0)
cout<<" ";
cout<<a[i];
}
cout<<endl;

}		return 0;
}


这个题目体会挺多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: