• 01:查找特定的值(1.9)


    从题目可以看出必须用数组存储数据。

    数组定义 int a[10010](说明,比题目要求的10000,大一点,防止访问越界)

    #include<cstdio>
    int a[10010];
    int main(){
        int n,x;
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&x);
        for (int i=1;i<=n;i++)
           if (a[i]==x) {printf("%d",i);return 0;}
        printf("-1
    ");
        return 0;
    }
    View Code

    上述程序找到x使用return 0结束程序

    但是一般查找数据往往只是程序的一部分,所以使用break退出更加有通用性,修改后的程序如下:

    #include<cstdio>
    int a[10010];
    int main(){
        int n,x;
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&x);
        int i;
        for ( i=1;i<=n;i++)
           if (a[i]==x) {printf("%d",i);break;}
        if (i>n)printf("-1
    ");
        return 0;
    }
    View Code

    还可以利用C++的灵活性对程序稍作修改

    #include<cstdio>
    int a[10010];
    int main(){
        int n,x;
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&x);
        int i;
        for ( i=1;(i<=n)&&(a[i]!=x);i++);
        if (i<=n)printf("%d
    ",i);
        else printf("-1
    ");
        return 0;
    }
    View Code

    但是程序不够简洁,如何让程序变的更美呢?

    定义一个变量p=-1,如果找到x则p=i,最后输出p即可,程序如下:

    #include<cstdio>
    int a[10010];
    int main(){
        int n,x;
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&x);
        int p=-1;
        for (int  i=1;i<=n;i++)
           if (a[i]==x) {p=i;break;}
        printf("%d
    ",p);
        return 0;
    }
    View Code
  • 相关阅读:
    【转】git教程
    Ubuntu下编译运行Kamailio
    windows下编译FreeSwitch
    自己常用的wireshark过滤条件
    CSRF 漏洞原理详解及防御方法
    Sql 注入详解:宽字节注入+二次注入
    Kali下Ettercap 使用教程+DNS欺骗攻击
    Sql注入的分类:数字型+字符型
    Windows Server 2012 R2 配置FTP服务器
    Kali Linux 初始化配置:Apache2 /SSH /FTP
  • 原文地址:https://www.cnblogs.com/ssfzmfy/p/5195669.html
Copyright © 2020-2023  润新知