zzuli oj 1117 查找数组元素

Posted yuanqingwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zzuli oj 1117 查找数组元素相关的知识,希望对你有一定的参考价值。

题意描述:
编写程序,输入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
",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 查找数组元素的主要内容,如果未能解决你的问题,请参考以下文章

zzuli oj 1111 多个整数的逆序输出

zzuli oj 1105 友好数对

1117: 查找数组元素

zzuli OJ 1128: 课程平均分

zzuli oj 1134 字符串转换

zzuli OJ 1129: 第几天