生活随笔
收集整理的這篇文章主要介紹了
数组中插入一个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
給定有序數組(從小到大),再給你一個數,要求插入該數到數組中并保持順序
Input
多組測試,每組第一行輸入一個整數n,然后是n個有序的整數 第二行輸入1個整數m和1個整數K
Output
將整數m插入到原數組中保持順序是升序,然后輸出2行 第一行是插入以后的數組 第二行是插入以后的數組中下標值是K的數 n m k不超過20
Sample Input
3 1 2 5
3 1
Sample Output
1 2 3 5
2
int main
()
{int n
;int a
[20
];int b
[20
];while
(scanf
("%d",
&n
)!=EOF
){int m
;int i,k,l
;//l作為下標最后輸出插入以后的數組中下標值是l的數 for
(i
=0
;i
<n
;i++
){scanf
("%d",
&a
[i
]);}scanf
("%d%d",
&m,
&l
);k
=n-1
;//另k
=最后一個數的下標 ,k用來增加多出來的一項,通過賦值交換變量for
(i
=0
;i
<n
;i++
)//判斷n次
{if
(m
<a
[i
])//如果m比數組中的數小
{k
=i-1
;//k
=第i-1項因為m比a【i】小,讓k成為i前面那一項
break;//跳出循環
}}for
(i
=0
;i
<=k
;i++
){b
[i
]=a
[i
];//o到k共k+1項正常輸出
}b
[k+1
]=m
;//如果m足夠大,讓第n項即在原先n項以外再加一項到b【i】中 for
(i
=k+1
;i
<n
;i++
){b
[i+1
]=a
[i
];//k+1即i,在上面已經另b
[k+1
]=m,由于插入了一個數m,m之后的數組數值不變但下標全部加一
}for
(i
=0
;i
<n
;i++
){printf
("%d ",b
[i
]);//先輸出增加后的前n個數組
}printf
("%d\n",b
[n
]);//由格式輸出最后一個值 printf
("%d\n",b
[l
]);//第二行輸出下標規定的值
}
}
總結
以上是生活随笔為你收集整理的数组中插入一个数的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。