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

本文介绍了一个简单的算法题目“数组中删数II”,任务是在给定的数组中删除指定数值的所有出现,并按顺序输出剩余元素。文章提供了两种实现方式的C语言代码示例,一种尝试直接操作原数组但存在问题,另一种则是正确的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 }

 

转载于:https://www.cnblogs.com/dddddd/p/6680724.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值