【C++】之''结构体''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

定义全班学生学习成绩的结构体数组,学生结构体类型的数据成员为:姓名、学号、英语、物理、数学和这三门功课的平均成绩。先输入全班成绩,再计算每个学生的平均成绩,最后输出全班成绩表。

【输入形式】

每行输入一个学生数据,分别为学号、姓名、英语、物理、数学,每个数据中间用空格隔开

【输出形式】

每行输出一个学生数据,分别为学号、姓名、英语、物理、数学,平均成绩 每个数据中间用空格隔开。

所有浮点型数据保留两位有效数字输出

提示cout保留两位有效数字的实现:

使用时首先引入头文件

#include<iomanip>

cout<<fixed<<setprecision(2)<<a<<b; //输出a,b的值,并保留两位有效数字

【样例输入】

1 zhngsan 78 78 78

2 lisi 90 91 92

3 wangwu 98 98 98

【样例输出】

1 zhngsan 78.00 78.00 78.00 78.00

2 lisi 90.00 91.00 92.00 91.00

3 wangwu 98.00 98.00 98.00 98.00

【答案说明】

此答案最后保留小数位数输出并未使用cout,而是使用的printf格式输出

【参考答案】

#include<iostream>

using namespace std;

    struct student
    {
        int no;
        char name[8];
        float yy,wl,sx,ave;
    };
    void Input(student s[2])
    {
        for(int i=0;i<3;i++)
        {
            cin>>s[i].no>>s[i].name>>s[i].yy>>s[i].wl>>s[i].sx;
        }
    }
    void ave (student s[ ])
    {
        for (int i=0;i<3;i++)
             s[i].ave=(s[i].yy+s[i].wl+ s[i].sx)/3;
    }
    void print(student s[ ])
    {
    for (int i=0;i<3;i++)
        printf("%d %s %.2f %.2f %.2f %.2f\n",s[i].no,s[i].name,s[i].yy,s[i].wl,s[i].sx,s[i].ave);
    }

    int main ()
    {
       student stu[3];
       Input(stu);
       ave (stu);
       print(stu);
       return 0;
    }

 
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容