1 solutions

  • 0
    @ 2025-11-5 15:28:35

    C :

    #include<stdio.h>
    #include<string.h>
    
    struct candidate
    {
    
        char name[20];  //成员
    
        int poll;       //选票
    
    }a[100];
    
    void shuru(int n, int m);
    
    void paixu(int n);
    
    int main()
    {
        int n, m, i;
        scanf("%d%d", &n, &m);
        shuru(n, m);
        paixu(n);
        for(i=0; i<n; i++)
        {
            printf("%s", a[i].name);
    
            if(i<n-1)
                printf("\n");
    
            if(a[i].poll > a[i+1].poll)
            {
                break;
            }
        }
    
    
    }
    
    
    void shuru(int n, int m)
    {
        int i, j;
        char name[20];
        for(i=0; i<n; i++)
        {
            scanf("%s", a[i].name);
            a[i].poll = 0;
        }
    
    
        for(i=0; i<m; i++)
        {
            scanf("%s", name);
            for(j=0; j<n; j++)
            {
                if(strcmp(name, a[j].name) == 0)
                {
                    a[j].poll++;
                }
            }
        }
    
    }
    
    void paixu(int n)
    {
        int i, j, t;
        char name[20];
        for(i=0; i<n-1; i++)
        {
            for(j=0; j<n-i-1; j++)
            {
                if(a[j].poll < a[j+1].poll)
                {
                    t = a[j].poll;
                    a[j].poll = a[j+1].poll;
                    a[j+1].poll = t;
    
                    strcpy(name, a[j].name);
                    strcpy(a[j].name, a[j+1].name);
                    strcpy(a[j+1].name, name);
                }
            }
        }
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    
    struct candidate
    {
    
        char name[20];  
    
        int poll;       
    
    }a[100];
    
    void shuru(int n, int m);
    
    void paixu(int n);
    
    int main()
    {
        int n, m, i;
        scanf("%d%d", &n, &m);
        shuru(n, m);
        paixu(n);
        for(i=0; i<n; i++)
        {
            printf("%s", a[i].name);
    
            if(i<n-1)
                printf("\n");
    
            if(a[i].poll > a[i+1].poll)
            {
                break;
            }
        }
    
    
    }
    
    
    void shuru(int n, int m)
    {
        int i, j;
        char name[20];
        for(i=0; i<n; i++)
        {
            scanf("%s", a[i].name);
            a[i].poll = 0;
        }
    
    
        for(i=0; i<m; i++)
        {
            scanf("%s", name);
            for(j=0; j<n; j++)
            {
                if(strcmp(name, a[j].name) == 0)
                {
                    a[j].poll++;
                }
            }
        }
    
    }
    
    void paixu(int n)
    {
        int i, j, t;
        char name[20];
        for(i=0; i<n-1; i++)
        {
            for(j=0; j<n-i-1; j++)
            {
                if(a[j].poll < a[j+1].poll)
                {
                    t = a[j].poll;
                    a[j].poll = a[j+1].poll;
                    a[j+1].poll = t;
    
                    strcpy(name, a[j].name);
                    strcpy(a[j].name, a[j+1].name);
                    strcpy(a[j+1].name, name);
                }
            }
        }
    }
    
    
    • 1

    Information

    ID
    16835
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By