1144: 零起点学算法51——数组中删数
1144: 零起点学算法51——数组中删数
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 3304 Accepted: 933
[Submit][Status][Web Board]
Description
在给定的数组中删除一个数
Input
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数
第二行输入1个整数m
Output
删除在第一行的n个整数中第一次出现数字m并删除,然后按照顺序输出剩下的数,
Sample Input
4 1 2 3 4
3
Sample Output
1 2 4
HINT
m有可能在原数组中找不到,找不到则输出原数组
Source
1 #include<stdio.h> 2 int main(){ 3 int n,a[20]; 4 while(scanf("%d",&n)!=EOF){ 5 for(int i=0;i<n;i++){ 6 scanf("%d",&a[i]); 7 } 8 9 int m,t,sign=1; 10 scanf("%d",&m); 11 for(int i=0;i<n;i++){ 12 if(m==a[i]){ 13 t=i; 14 sign=0; 15 break; 16 } 17 } 18 19 if(sign){ 20 for(int i=0;i<n-1;i++){ 21 printf("%d ",a[i]); 22 } 23 printf("%d\n",a[n-1]); 24 } 25 else{ 26 for(int i=0;i<t;i++){ 27 printf("%d ",a[i]); 28 } 29 for(int j=t+1;j<n-1;j++){ 30 printf("%d ",a[j]); 31 } 32 printf("%d\n",a[n-1]); 33 } 34 } 35 return 0; 36 }
//感觉有问题,如果删除的数是最后一个??