题解 | #序列中删除指定数字#
序列中删除指定数字
https://www.nowcoder.com/practice/7bbcdd2177a445a9b66da79512b32dd7
#include <stdio.h> int main() { int n,m,e; scanf("%d",&n); int arr[n]; for(int i=0;i<n;i++){ scanf("%d",&arr[i]); } scanf("%d",&m); for(int i=0;i<n;i++){ if(m==arr[i]){ e=i;//标记重复元素的位置,以便删除 for(int j=e;j<n;j++){ arr[j]=arr[j+1]; //循环遍历标记e后的元素,让后一个元素依次覆盖当前元素,达到删除的目的 i--;//删除一个重复元素后,该重复元素后一个元素覆盖其位置,此时需要i--,以防止出现漏判的情况 } n--;//数组长度减一 } } for(int i=0;i<n;i++){ printf("%d ",arr[i]); } return 0; }