课外天地 李树青学习天地清心茶舍 → 课后作业——学生平均成绩统计


  共有17705人关注过本帖树形打印复制链接

主题:课后作业——学生平均成绩统计

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
课后作业——学生平均成绩统计  发帖心情 Post By:2008/12/4 6:30:24 [只看该作者]

1、基本输入程序
# include <stdio.h>

struct student{
        char number[6];
        char name[10];
        int grade[3];
};

void main()
{
        struct student stus[3];

        int i,j;
        for(i=0;i<3;i++)
        {
                printf("请输入学生学号:\n");
                scanf("%s",stus[i].number);
                printf("请输入学生姓名:\n");
                scanf("%s",stus[i].name);
                for(j=0;j<3;j++)
                {
                        printf("请输入第%d门课程的成绩:\n",j+1);
                        scanf("%d",&stus[i].grade[j]);
                }
        }
        
        for(i=0;i<3;i++)
        {
                printf("第%d个学生的学号是%s,姓名是%s",i+1,stus[i].number,stus[i].name);
        }
}

2、增加对总平均分的统计功能
# include <stdio.h>

struct student{
        char number[6];
        char name[10];
        int grade[3];
};

void main()
{
        struct student stus[3];

        int i,j;
        
        double average;//首先尝试使用int
        
        double total=0;//其次尝试使用int

        for(i=0;i<3;i++)
        {
                printf("请输入学生学号:\n");
                scanf("%s",stus[i].number);
                printf("请输入学生姓名:\n");
                scanf("%s",stus[i].name);
                for(j=0;j<3;j++)
                {
                        printf("请输入第%d门课程的成绩:\n",j+1);
                        scanf("%d",&stus[i].grade[j]);
                }
        };
        
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        total=total+stus[i].grade[j];
                }
        }

        average=total/3/3;
        printf("平均分为%f",average);
}

3、完整的程序
# include <stdio.h>

struct student{
        char number[6];
        char name[10];
        int grade[3];
};

void main()
{
        struct student stus[3];

        int i,j;
        
        double average;//首先尝试使用int
        
        double total=0;//其次尝试使用int

        int maxGrade=0;

        int stuOfMaxGrade=0;

        for(i=0;i<3;i++)
        {
                printf("请输入学生学号:\n");
                scanf("%s",stus[i].number);
                printf("请输入学生姓名:\n");
                scanf("%s",stus[i].name);
                for(j=0;j<3;j++)
                {
                        printf("请输入第%d门课程的成绩:\n",j+1);
                        scanf("%d",&stus[i].grade[j]);
                }
        };
        
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        total=total+stus[i].grade[j];
                }
        }

        average=total/3/3;
        printf("平均分为%f\n",average);

        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        if(maxGrade<stus[i].grade[j])
                        {
                                maxGrade=stus[i].grade[j];
                                stuOfMaxGrade=i;        
                        }
                }
        }

        total=0;
        for(j=0;j<3;j++)
        {
                total=total+stus[stuOfMaxGrade].grade[j];
        }

        average=total/3;
        printf("最高分数的学生学号是%s,姓名是%s\n",stus[stuOfMaxGrade].number,stus[stuOfMaxGrade].name);
        for(j=0;j<3;j++)
        {
                printf("第%d门课程的成绩是%d\n",j+1,stus[stuOfMaxGrade].grade[j]);
        }
        printf("该学生的平均成绩是%f\n",average);
}

[此贴子已经被作者于2010-12-13 20:06:22编辑过]

 回到顶部