1 条题解

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

    C :

    #include<stdio.h>
    #include<string.h>
    
        struct student
        {
    
            int  id;                 //学号
    
            char name[20];   //姓名
    
            double score[3];  //三门课成绩,取值在0.0-100.0
    
            double aver;       //平均成绩,保留两位小数
    
        }a[100];
        double average(struct student *p);
        void shuru(int n);
        int high(struct student *p, int n);
    int main()
    {
        int n, i, h;
        double b[100], c;
        struct student *p;
        p = a;
        scanf("%d", &n);
        shuru(n);
        for(i=0; i<n; i++)
        {
            a[i].aver = average((p+i));
        }
        for(i=0; i<n; i++)
        {
            printf("%.2lf", a[i].aver);
            if(i<n-1)
                printf(" ");
        }
        printf("\n");
        h = high(p,n);
        printf("%d %s %.1lf %.1lf %.1lf %.2lf", a[h].id, a[h].name, a[h].score[0],  a[h].score[1], a[h].score[2], a[h].aver);
    
    }
    
    double average(struct student *p)
    {
        int i;
        double sum = 0.0;
        for(i=0; i<3; i++)
        {
            sum += p->score[i];
        }
        return sum/3.0;
    }
    void shuru(int n)
    {
        int i;
    
        for(i=0; i<n; i++)
        {
            scanf("%d", &a[i].id);
            scanf("%s", a[i].name);
            scanf("%lf", &a[i].score[0]);
            scanf("%lf", &a[i].score[1]);
            scanf("%lf", &a[i].score[2]);
        }
    
    }
    
    int high(struct student *p, int n)
    {
        int i, highaver = 0;
        for(i=0; i<n;i++)
        {
            if((p+i)->aver > (p+highaver)->aver)
                highaver = i;
        }
        return highaver;
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    
        struct student
        {
    
            int  id;                 //学号
    
            char name[20];   //姓名
    
            double score[3];  //三门课成绩,取值在0.0-100.0
    
            double aver;       //平均成绩,保留两位小数
    
        }a[100];
        double average(struct student *p);
        void shuru(int n);
        int high(struct student *p, int n);
    int main()
    {
        int n, i, h;
        double b[100], c;
        struct student *p;
        p = a;
        scanf("%d", &n);
        shuru(n);
        for(i=0; i<n; i++)
        {
            a[i].aver = average((p+i));
        }
        for(i=0; i<n; i++)
        {
            printf("%.2lf", a[i].aver);
            if(i<n-1)
                printf(" ");
        }
        printf("\n");
        h = high(p,n);
        printf("%d %s %.1lf %.1lf %.1lf %.2lf", a[h].id, a[h].name, a[h].score[0],  a[h].score[1], a[h].score[2], a[h].aver);
    
    }
    
    double average(struct student *p)
    {
        int i;
        double sum = 0.0;
        for(i=0; i<3; i++)
        {
            sum += p->score[i];
        }
        return sum/3.0;
    }
    void shuru(int n)
    {
        int i;
    
        for(i=0; i<n; i++)
        {
            scanf("%d", &a[i].id);
            scanf("%s", a[i].name);
            scanf("%lf", &a[i].score[0]);
            scanf("%lf", &a[i].score[1]);
            scanf("%lf", &a[i].score[2]);
        }
    
    }
    
    int high(struct student *p, int n)
    {
        int i, highaver = 0;
        for(i=0; i<n;i++)
        {
            if((p+i)->aver > (p+highaver)->aver)
                highaver = i;
        }
        return highaver;
    }
    
    • 1

    信息

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