1 条题解

  • 0
    @ 2025-4-7 21:29:59

    C :

    #include<stdio.h>
    #include<string.h>
    struct magnate
    {
    
        char name[20];  //姓名
    
        double property;//财产,以亿元为单位。
    
    }a[100];
    
    void shuru(int n);
    void paixu(struct magnate *p, int n);
    
    int main()
    {
        int n, k, i;
        struct magnate *p;
        p = a;
        scanf("%d%d", &n, &k);
        shuru(n);
        paixu(p, n);
        for(i=0; i<k; i++)
        {
            printf("%s %.2lf", a[i].name, a[i].property);
            if(i<k-1)
                printf("\n");
        }
    
    }
    
    void shuru(int n)
    {
        int i;
        for(i=0; i<n; i++)
        {
            scanf("%s", a[i].name);
            scanf("%lf", &a[i].property);
        }
    }
    
    void paixu(struct magnate *p, int n)
    {
        int i, j;
        double t;
        char name[20];
        for(i=0; i<n-1; i++)
        {
            for(j=0; j<n-1-i; j++)
            {
                if((p+j)->property < (p+j+1)->property)
                {
                    t = (p+j)->property;
                    (p+j)->property = (p+j+1)->property;
                    (p+j+1)->property = t;
    
                    strcpy(name, (p+j)->name);
                    strcpy( (p+j)->name, (p+j+1)->name);
                    strcpy( (p+j+1)->name, name);
    
                }
            }
        }
    
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    struct magnate
    {
    
        char name[20];  //姓名
    
        double property;//财产,以亿元为单位。
    
    }a[100];
    
    void shuru(int n);
    void paixu(struct magnate *p, int n);
    
    int main()
    {
        int n, k, i;
        struct magnate *p;
        p = a;
        scanf("%d%d", &n, &k);
        shuru(n);
        paixu(p, n);
        for(i=0; i<k; i++)
        {
            printf("%s %.2lf", a[i].name, a[i].property);
            if(i<k-1)
                printf("\n");
        }
    
    }
    
    void shuru(int n)
    {
        int i;
        for(i=0; i<n; i++)
        {
            scanf("%s", a[i].name);
            scanf("%lf", &a[i].property);
        }
    }
    
    void paixu(struct magnate *p, int n)
    {
        int i, j;
        double t;
        char name[20];
        for(i=0; i<n-1; i++)
        {
            for(j=0; j<n-1-i; j++)
            {
                if((p+j)->property < (p+j+1)->property)
                {
                    t = (p+j)->property;
                    (p+j)->property = (p+j+1)->property;
                    (p+j+1)->property = t;
    
                    strcpy(name, (p+j)->name);
                    strcpy( (p+j)->name, (p+j+1)->name);
                    strcpy( (p+j+1)->name, name);
    
                }
            }
        }
    
    }
    
    • 1

    信息

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