1. 程式人生 > >1117: 查詢陣列元素

1117: 查詢陣列元素

題目描述

編寫程式,輸入n(1<=n<=10),輸入n個整數構成一個數組,輸入整數x,在這個陣列中查詢x是否存在,如果存在,刪除x,後面元素依次向前添補空位,並輸出刪除元

 

素後的陣列。如果不存在,輸出“Not Found”。

定義一個查詢函式find(),在陣列a中查詢x,若找不到函式返回-1,若找到返回x的下標,函式原型如下:

int find(int a[], int n, int x);

然後在main()中,先呼叫函式find(),若查詢失敗輸出“Not Found";若查詢成功,則呼叫上一題中定義的函式del()刪除該元素,再呼叫上一題中的PrintArr()輸出刪除元素後的陣列內容。

 

輸入

輸入第一行是一個正整數n(1<=n<=10);

第二行是n個整數,構成一個數組;

第三行是一個整數x,表示待查詢元素。

 

輸出

輸出刪除元素後的陣列,每個元素佔4列,右對齊。如果不存在,輸出“Not Found”。如果陣列中有多個x,只刪除下標最小的那個。

 

樣例輸入

6
3 6 2 4 7 9
4

 

樣例輸出

   3   6   2   7   9
#include<stdio.h>
int find(int a[], int n, int x)
{
    
for(int i=0;i<n;i++) if(a[i]==x) return i; return -1; } void del(int a[],int n,int z) { for(int i=z;i<n;i++) { a[i]=a[i+1]; } } void PrintArr(int a[],int n) { for(int i=0;i<n-1;i++) { printf("%4d",a[i]); } } int main() {
int a[10],n,x; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&x); if(find(a,n,x)==-1) printf("Not Found"); else { int z=find(a,n,x); del(a,n,z); PrintArr(a,n); } return 0; }