#include <iostream>
using namespace std;
int a[105],i,t,n,m;
int main(){
while(cin>>n>>m&&(n||m)){
for(i=0;i<n&&cin>>t&&t<m;i++)//读入小于m的部分
a[i]=t;
a[i++]=m,a[i++]=t;//将m和第一个大于m的数插入数列
while(i<n+1)
cin>>a[i++];//读入大于m的部分
for(i=0;i<n+1;i++)
printf("%s%d",i?" ":"",a[i]);
printf("\n");
}
return 0;
}
也可以从输出的角度考虑:
#include <iostream>
using namespace std;
int a[105],i,n,m;
int main(){
while(cin>>n>>m&&(n||m)){
for(i=0;i<n;i++)//读入数列
cin>>a[i];
for(i=0;i<n&&a[i]<m;i++)//输出小于m的部分
printf("%s%d",i?" ":"",a[i]);
printf(" %d",m);
while(i<n)//输出大于m的部分
printf(" %d",a[i++]);
printf("\n");
}
return 0;
}