1 条题解

  • 0
    @ 2025-4-12 21:43:14

    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

    信息

    ID
    1317
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者