码迷,mamicode.com
首页 > 编程语言 > 详细

zzuli oj 1117 查找数组元素

时间:2019-02-16 15:43:37      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:管理   nbsp   scan   div   注意   代码实现   分析   code   printf   

题意描述:
编写程序,输入n(1<=n<=10),输入n个整数构成一个数组,输入整数x,在这个数组中查找x是否存在,
如果存在,删除x,后面元素依次向前添补空位,并输出删除元素后的数组。如果不存在,输出“Not Found”。
输入第一行是一个正整数n(1<=n<=10);
第二行是n个整数,构成一个数组;
第三行是一个整数x,表示待查找元素。
输出删除元素后的数组,每个元素占4列,右对齐。如果不存在,输出“Not Found”。如果数组中有多个x,
只删除下标最小的那个。
解题思路:
分别编写三个函数,一个查找是否含有相同元素,如果有返回该下标,反之返回-1。
一个函数删除指定元素,一个函数输出处理后的新数组。
代码实现:

 1 #include<stdio.h>
 2 int find(int a[], int n, int x)
 3 {
 4 //int main()
 5 //{
 6 //    int a[20],n,x;
 7  int i,find=0;
 8 // scanf("%d",&n);
 9 // for(i=0;i<n;i++)
10 // scanf("%d",&a[i]);
11 // 
12 // scanf("%d",&x);
13  for(i=0;i<n;i++)
14  {
15   if(a[i]==x)
16   {
17   find=1;
18 //  printf("%d\n",i);
19   return i;
20   break;
21      }
22  }
23  if(find==0)
24 // printf("-1");
25  return -1;
26  } 
27 void del(int a[],int n,int i)
28  {
29   int t;
30   for(t=i;t<=n-1;t++)
31   {
32    a[t]=a[t+1];
33   }
34  }
35  void PrintArr(int a[], int n)
36  {
37   int i;
38   for(i=0;i<n-1;i++)
39   printf("%4d",a[i]);
40  }
41  int main()
42  {
43   int n,x,a[20],i;
44   scanf("%d",&n);
45   for(i=0;i<n;i++)
46   scanf("%d",&a[i]);
47   scanf("%d",&x);
48   find( a,  n,  x);
49   
50   if(find( a,  n,  x)==-1)
51   printf("Not Found") ;
52   else
53   {
54   i=find( a,  n,  x);
55    del( a, n, i);
56    PrintArr( a,  n);
57      }
58   return 0;
59  }

 


 


易错分析:
1.if语句中他直接管理与其紧挨的一句,如果有多句要用括号括起来。
2.连用函数时要注意上一个函数的返回值要重新赋值给下一个函数,例如题中的i就要重新赋值,不然无法计算。

zzuli oj 1117 查找数组元素

标签:管理   nbsp   scan   div   注意   代码实现   分析   code   printf   

原文地址:https://www.cnblogs.com/yuanqingwen/p/10387668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!