ZZULIOJ.1117: 查詢陣列元素
阿新 • • 發佈:2018-12-22
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)
{
int i,t=-1;
for(i=0;i<n;i++)
{
if(a[i]==x)
{
t=i;
break;
}
}
if(t==-1) return -1;
else return t;
}
void del(int a[],int n,int i) /*刪除陣列a中下標為i的元素*/
{
int j;
for(j=i;j<n-1;j++)
{
a[j]=a[j+1];
}
}
void PrintArr(int a[],int n) /*輸出陣列a的前n個元素*/
{
int i;
for(i=0;i<n;i++)
{
printf("%4d" ,a[i]);
}
}
int main()
{
int n,a[10],i,x,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
j=find(a,n,x);
if(j==-1)
printf("Not Found");
else
{del(a,n,j);PrintArr(a,n-1);}
return 0;
}