一个人的朝圣800 2021-07-07 12:15 采纳率: 75%
浏览 22
已采纳

C++结构体问题,不会码??

有 10 个学生,每个学生的数据包括学号、姓名、3 门课的成绩, 从键盘输入10 个学生的数据,要求打印出 3 门课的总平均成绩,并计算出每人的平均成绩?

  • 写回答

1条回答 默认 最新

  • CSDN专家-黄老师 2021-07-07 12:16
    关注
    #include <iostream>
    #include <iomanip>
    #include <string>
    using namespace std;
    struct Student
    {
        int num;
        string name;
        float score[3];
        float aver;
    };
    void input(Student *s, int n);
    void average(Student *s, int n);
    void high(Student *s, int n);
    int main()
    {
        Student stu[10], *st=stu;
        input(st, 10);
        average(st, 10);
        high(st, 10);
        system("pause");
        return 0;
    }
    void input(Student *s, int n)
    {
        Student *p;
        int i, j;
        for (p=s, i=0; p<s+n; p++, i++){
            cout<<"Please enter No."<<i+1<<" student num, name, score: ";
            cin>>p->num>>p->name;
            for (j=0; j<3; cin>>p->score[j++]);
        }
    }
    void average(Student *s, int n)
    {
        Student *p;
        int i;
        float sum, ave=0.0;
        for (p=s; p<s+n; p++){
            sum=0.0;
            for (i=0; i<3; sum+=p->score[i++]);
            p->aver=(sum/3);
            ave+=p->aver;
        }
        cout<<"Average= "<<ave/n<<endl;
    }
    void high(Student *s, int n)
    {
        Student *p, *h;
        float high;
        int i;
        for (p=s, h=p, high=p->aver; p<s+n; p++)
            if (p->aver>high){
                high=p->aver;
                h=p;
            }
        cout<<"Highest student info: "<<h->num<<' '<<h->name<<' ';
        for (i=0; i<3; cout<<h->score[i++]<<' ');
        cout<<h->aver<<endl;
    }
    

    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能