zoukankan      html  css  js  c++  java
  • 3.2查找元素

    codeup 1934: 找x

    题目描述

    输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

    输入

    测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。

    输出

    对于每组输入,请输出结果。

    样例输入 Copy

    4

    1 2 3 4

    3

    样例输出 Copy

    2

    #include <stdio.h>
    int main()
    {
        int n;                              
        int x;                              //待查数据x
        while (scanf("%d", &n) != EOF)     //测试数据有多组
        {
            int a[n];                     //每次n个数据
            int flag = -1;                //待查数据在数组中的下标初始为-1
            for (int i = 0; i < n; i++)
            {
                scanf("%d", &a[i]);
            }
            scanf("%d", &x);
            for (int i = 0; i < n; i++)
            {
                if (a[i] == x)
                {
                    flag = i;
                }
            }
            printf("%d
    ", flag);
        }
    
        return 0;
    }
    

    统计同成绩学生人数

    题目描述

    读入N名学生的成绩,将获得某一给定分数的学生人数输出。

    输入

    测试输入包含若干测试用例,每个测试用例的格式为

    第1行:N

    第2行:N名学生的成绩,相邻两数字用一个空格间隔。

    第3行:给定分数

    当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

    输出

    对每个测试用例,将获得给定分数的学生人数输出。

    样例输入 Copy

    4

    70 80 90 100

    80

    3

    65 75 85

    55

    5

    60 90 90 90 85

    90

    0

    样例输出 Copy

    1

    0

    3

    #include<stdio.h>
    int main()
    {
        int n;
        while (scanf("%d",&n),n)                         //n=0时结束输入
        {
            int a[n];
            int s;
            int count=0;
            for (int i = 0; i < n; i++)
            {
                scanf("%d",&a[i]);
            }
            scanf("%d",&s);
            for (int i = 0; i < n; i++)
            {
                if (a[i]==s)
                {
                    count++;
                }
                
            }
            printf("%d
    ",count);
        }
        
        return 0;
    }
    

    找x

    题目描述

    输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

    输入

    测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。

    输出

    对于每组输入,请输出结果。

    样例输入 Copy

    4

    1 2 3 4

    3

    样例输出 Copy

    2

    #include<stdio.h>
    int main()
    {
        int n;
        while (scanf("%d",&n)!=EOF)                         
        {
            int a[n];
            int s;
            int ans=-1;
            for (int i = 0; i < n; i++)
            {
                scanf("%d",&a[i]);
            }
            scanf("%d",&s);
            for (int i = 0; i < n; i++)
            {
                if (a[i]==s)
                {
                    ans=i;
                }
                
            }
            printf("%d
    ",ans);
        }
        
        return 0;
    }
    

    查找学生信息

    题目描述

    输入N个学生的信息,然后进行查询。

    输入

    输入的第一行为N,即学生的个数(N<=1000)

    接下来的N行包括N个学生的信息,信息格式如下:

    01 李江 男 21

    02 刘唐 男 23

    03 张军 男 19

    04 王娜 女 19

    然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:

    02

    03

    01

    04

    输出

    输出M行,每行包括一个对应于查询的学生的信息。

    如果没有对应的学生信息,则输出“No Answer!”

    样例输入 Copy

    5

    001 张三 男 19

    002 李四 男 20

    003 王五 男 18

    004 赵六 女 17

    005 刘七 女 21

    7

    003

    002

    005

    004

    003

    001

    006

    样例输出 Copy

    003 王五 男 18

    002 李四 男 20

    005 刘七 女 21

    004 赵六 女 17

    003 王五 男 18

    001 张三 男 19

    No Answer!

    #include <stdio.h>
    #include <string.h>
    struct s
    {
        char id[100];
        char name[100];
        char sex[10];
        int age;
    };
    int main()
    {
        int n;
        while (scanf("%d", &n) != EOF)
        {
            s student[n];
            for (int i = 0; i < n; i++)
            {
                scanf("%s", student[i].id);
                scanf("%s", student[i].name);
                scanf("%s", student[i].sex);
                scanf("%d", &student[i].age);
            }
            int m;
            scanf("%d", &m);
            for (int i = 0; i < m; i++)
            {
                char str[100];
                scanf("%s", str);
                int j;
                for (j = 0; j < n; j++)
                {
                    if (strcmp(str, student[j].id) == 0)
                    {
                        printf("%s %s %s %d
    ", student[j].id, student[j].name, student[j].sex, student[j].age);
                        break;
                    }
                }
                if (j == n)
                {
                    printf("No Answer!
    ");
                }
            }
        }
    
        return 0;
    }
    

    查找

    题目描述

    输入数组长度 n

    输入数组 a[1...n]

    输入查找个数m

    输入查找数字b[1...m]

    输出 YES or NO 查找有则YES 否则NO 。

    输入

    输入有多组数据。

    每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。

    输出

    如果在n个数组中输出YES否则输出NO。

    样例输入 Copy

    6

    3 2 5 4 7 8

    2

    3 6

    样例输出 Copy

    YES

    NO

    #include <stdio.h>
    int main()
    {
        int n;
        while (scanf("%d", &n) != EOF)
        {
            int a[n];
            int m;
            for (int i = 0; i < n; i++)
            {
                scanf("%d", &a[i]);
            }
            scanf("%d", &m);
            int b[m];
            for (int i = 0; i < m; i++)
            {
                scanf("%d", &b[i]);
            }
            for (int i = 0; i < m; i++)
            {
                int j;
                for (j = 0; j < n; j++)
                {
                    if (b[i] == a[j])
                    {
                        printf("YES
    ");
                        break;
                    }
                }
                if (j == n)
                {
                    printf("NO
    ");
                }
            }
        }
    
        return 0;
    }
    

    学生查询

    题目描述

    输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。

    输入

    测试数据有多组,第一行为样例数m。

    对于每个样例,第一行为学生人数n(n不超过20),加下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。

    输出

    输出m行,每行表示查询的学生信息,格式参见样例。

    样例输入 Copy

    1

    4

    1 李江 男 21

    2 刘唐 男 23

    3 张军 男 19

    4 王娜 女 19

    2

    样例输出 Copy

    2 刘唐 男 23

    #include <stdio.h>
    #include <string.h>
    struct s
    {
        char id[100];
        char name[100];
        char sex[10];
        int age;
    };
    int main()
    {
        int m;
        scanf("%d", &m);
        while (m--)
        {
            int n;
            scanf("%d", &n);
            s student[n];
            for (int i = 0; i < n; i++)
            {
                scanf("%s", student[i].id);
                scanf("%s", student[i].name);
                scanf("%s", student[i].sex);
                scanf("%d", &student[i].age);
            }
            char str[100];
            scanf("%s", str);
            int j;
            for (j = 0; j < n; j++)
            {
                if (strcmp(str, student[j].id) == 0)
                {
                    printf("%s %s %s %d
    ", student[j].id, student[j].name, student[j].sex, student[j].age);
                    break;
                }
            }
        }
    
        return 0;
    }
  • 相关阅读:
    简单 dp 题选做
    UVa11327
    Codeforces Round #641 (div.2) 题解
    新博客
    数位dp的学习
    stl粗略用法
    cf437C The Child and Toy
    poj1995 Raising Modulo Numbers
    Tarjan的学习
    最短路模板
  • 原文地址:https://www.cnblogs.com/qing123tian/p/12348838.html
Copyright © 2011-2022 走看看