1144: 零起点学算法51——数组中删数

Posted 只想要一个大Offer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1144: 零起点学算法51——数组中删数相关的知识,希望对你有一定的参考价值。

1144: 零起点学算法51——数组中删数

Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
Submitted: 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 }

//感觉有问题,如果删除的数是最后一个?? 





以上是关于1144: 零起点学算法51——数组中删数的主要内容,如果未能解决你的问题,请参考以下文章

1145: 零起点学算法52——数组中删数II (有问题!)

Problem D: 零起点学算法83——数组中删数

1143: 零起点学算法50——数组中查找数

1146: 零起点学算法53——数组中插入一个数

1142: 零起点学算法49——找出数组中最大元素的位置(下标值)

1152: 零起点学算法59——找出一个数组中出现次数最多的那个元素