1145: 零起点学算法52——数组中删数II


1145: 零起点学算法52——数组中删数II

Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
Submitted: 2935  Accepted: 793
[Submit][Status][Web Board]

Description

在给定的数组中删除数

 

Input

多组测试,每组第一行输入1个整数n(n<20),然后是n个整数
第二行输入1个整数m  

 

Output

 

删除在第一行的n个整数中的数字m(多个的话都要删除),然后按照顺序输出剩下的数。如果该数组中所有数均被删除,请直接输出换行

 

Sample Input

 
5 1 2 3 4 3
3

 

Sample Output

1 2 4

 

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,cout=0;
10         scanf("%d",&m);
11         for(int i=0;i<n;i++){
12             if(m==a[i]){
13                 t=a[i];
14                 a[i]=a[i+1];
15                 a[i+1]=t;
16                 cout++;
17             }
18         }
19         
20         for(int i=0;i<n-cout;i++){
21             printf("%d ",a[i]);
22         }
23         printf("%d\n",a[n-cout]);
24     }
25     return 0;
26 }

 

改正后AC代码:

 1 #include<stdio.h>
 2 int main(){
 3     int n,a[20],b[20];
 4     while(scanf("%d",&n)!=EOF){
 5         for(int i=0;i<n;i++){
 6             scanf("%d",&a[i]);
 7         }
 8         int m,j=0;
 9         scanf("%d",&m);
10         for(int i=0;i<n;i++){
11             if(m!=a[i]){
12                b[j]=a[i];
13                j++; 
14             }
15         }
16         if(j==0)
17           printf("\n");
18         else{
19           for(int i=0;i<j-1;i++){
20             printf("%d ",b[i]);
21           }
22             printf("%d\n",b[j-1]);  
23         }   
24     }
25     return 0;
26 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM