zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Linux file命令详解
    Linux stat命令详解
    Linux cut命令详解
    Linux tr命令详解
    Linux grep/egrep命令详解
    Linux awk命令详解
    Linux xargs命令详解
    MVC设计模式
    qt博客
    android
  • 原文地址:https://www.cnblogs.com/binanry/p/10055261.html
Copyright © 2011-2022 走看看