hdu 2019,hdu
Problem Description
有n(n<=100)個整數,已經按照從小到大順序排列好,現在另外給一個整數x,請將該數插入到序列中,並使新的序列仍然有序。
Input
輸入數據包含多個測試實例,每組數據由兩行組成,第一行是n和m,第二行是已經有序的n個數的數列。n和m同時為0標示輸入數據的結束,本行不做處理。
Output
對於每個測試實例,輸出插入新的元素後的數列。
Sample Input
3 3 1 2 4 0 0
Sample Output
1 2 3 4
#include<stdio.h>
int main()
{
int n,m,i,j,temp,cnt;
int str[101];
while(scanf("%d%d",&n,&m)!=EOF){
if(n==0 && m==0) return 0;
else{
for(i=0;i<n;i++){
scanf("%d",&str[i]);
}
if(str[n-1]<=m) str[n]=m;
else{
for(i=0;i<n-1;i++){
if(str[i]<m && str[i+1]>=m){
cnt=i;
for(j=n+1;j>cnt+1;j--){
str[j]=str[j-1];
}
str[cnt+1]=m;
}
}
}
for(i=0;i<n+1;i++){
printf("%d",str[i]);
if(i<n) printf(" ");
else printf("\n");
}
}
}
return 0;
}
tip: 數組的大小設置,還要插入位置的判斷,前面小於,後面大於等於,或前面有等號,後面沒有