首页 > 试题广场 >

现有3个学生4门课。要求在main()中实现以下功能: (1

[问答题]

现有3个学生4门课。要求在main()中实现以下功能:

(1)求每个学生的平均分。

(2)求每门课的平均分,结果保留2 位小数,存入文件cx.txt

#include"stdio.h"

#include"stdlib.h"

int main()

{

    FILE *fp;

    float average,aver[4];

    int i,j,all;

    int a[3][4]={{80,90,85,75},{88,90,98,76},{65,45,89,90}};

    for(i=0;i<3;i++)

    {

        all=0;

        for(j=0;j<4;j++)

        {

            all=all+a[i][j];

            average=all*1.0/4;

        }

        printf("No.%d student is average is %4.2f\n",i+1,average);

    }

    printf("\n\n");

    for(j=0;j<4;j++)

    {

        all=0;

        for(i=0;i<3;i++)

        {

            all=all+a[i][j];

            aver[j]=all*1.0/3;

        }

        printf("No.%d subject is average is %4.2f\n",j+1,aver[j]);

    }

    for(j=0;j<4;j++)

    {

        if((fp=fopen("F:\\cx.txt","a"))==NULL)

        {

            printf("open the file error\n");

            exit(0);

        }

        fprintf(fp,"%4.2f\n",aver[j]);

        if(fclose(fp))

        {

            printf("can not close file\n");

            exit(0);

        }

    }

    return 0;
}
#include<stdio.h>
#include<string.h>

struct score
{
    double course1;
    double course2;
    double course3;
    double course4;
};
typedef struct student
{
    char name[20];
    struct score Score;

}Student;

Student stu[20] =
{
    {"小明", { 80, 84, 95, 75 }},
    {"小红", { 82, 85, 91, 85 }},
    {"小张", { 84, 87, 73, 95 }}
};


int main()
{
    int i=0;
    double sum = 0;
    for (i = 0; i < 3; i++)
    {
        sum = stu[i].Score.course1+ stu[i].Score.course2 + 
            stu[i].Score.course3 + stu[i].Score.course4;
        printf("%s的平均分为:%.3f\n", stu[i].name, sum / 4.0);
    
    }
    printf("\n");
    Student* ps = stu;
    for (i = 0; i < 3; i++)
    {
        sum = ps->Score.course1 + ps->Score.course2 + ps->Score.course3
            + ps->Score.course4;
        printf("%s的平均分为:%.3f\n", ps->name, sum / 4.0);
        ps++;
    }
    return 0;
}
发表于 2021-08-06 08:46:48 回复(0)