C++(基础)每日一题5.有十个学生,每个学生的的数据包括学号、姓名、成绩,从键盘输入10个学生的数据要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均成绩)

5.有十个学生,每个学生的的数据包括学号、姓名、成绩,从键盘输入10个学生的数据
要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均成绩)

#include <iostream>
#include <iomanip>
using namespace std;
const int n=10;
struct student
{ char num[6];
  char name[8];
  int score[4];
  float avr;
} stu[n];

int main()
{ int i,j,max,maxi,sum;
  float average;
  for (i=0;i<n;i++)
    {cout<<"input scores of student "<<i+1<<endl;;
     cout<<"NO.:";
     cin>>stu[i].num;
     cout<<"name:";
     cin>>stu[i].name;
     for (j=0;j<3;j++)
       {cout<<"score "<<j+1<<":";
        cin>>stu[i].score[j];
       }
  cout<<endl;
    }
  average=0;
  max=0;
  maxi=0;
  for (i=0;i<n;i++)
    {sum=0;
     for (j=0;j<3;j++)
       sum+=stu[i].score[j];
     stu[i].avr=sum/3.0;
     average+=stu[i].avr;
     if (sum>max)
      {max=sum;
       maxi=i;
      }
    }
  average/=n;
  cout<<"     NO.        name      score1    score2    score3    average"<<endl;
  for (i=0;i<n;i++)
    {cout<<setw(8)<<stu[i].num<<"  "<<setw(10)<<stu[i].name<<"       ";
     for (j=0;j<3;j++)
       cout<<setw(3)<<stu[i].score[j]<<"       ";
     cout<<stu[i].avr<<endl;
    }
    cout<<"average="<<average<<endl;
    cout<<"The highest score is :"<<stu[maxi].name<<", score total:"<<max<<endl;
  return 0;
 }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现上述功能的C++代码: ```c++ #include <iostream> #include <string> using namespace std; struct Student { int num; string name; int score[3]; double average; }; int main() { Student stu[10]; double sum[3] = {0}; // 用于计算3门课成绩 int highest_index = 0; // 最高分学生在数组中的下标 double highest_score = -1; // 最高分数 for (int i = 0; i < 10; i++) { cout << "请输入第" << i + 1 << "个学生学号姓名、三门课成绩:" << endl; cin >> stu[i].num >> stu[i].name >> stu[i].score[0] >> stu[i].score[1] >> stu[i].score[2]; // 计算平均分 stu[i].average = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0; // 计算3门课成绩 sum[0] += stu[i].score[0]; sum[1] += stu[i].score[1]; sum[2] += stu[i].score[2]; // 更新最高分学生信息 if (stu[i].average > highest_score) { highest_score = stu[i].average; highest_index = i; } } // 计算3门课平均成绩 double avg[3] = {sum[0] / 10.0, sum[1] / 10.0, sum[2] / 10.0}; // 打印3门课平均成绩 cout << "三门课平均成绩为:" << avg[0] << " " << avg[1] << " " << avg[2] << endl; // 打印最高分学生信息 cout << "最高分学生信息为:" << endl; cout << "学号:" << stu[highest_index].num << endl; cout << "姓名:" << stu[highest_index].name << endl; cout << "三门课成绩:" << stu[highest_index].score[0] << " " << stu[highest_index].score[1] << " " << stu[highest_index].score[2] << endl; cout << "平均分数:" << stu[highest_index].average << endl; return 0; } ``` 在该程序中,我们定义了一个结构体`Student`,包含了学生学号姓名和三门课成绩,并且新增了一个`average`成员变量,用于存储学生平均分数。在`main`函数中,我们定义了一个包含10个学生信息的数组`stu`,并通过循环输入每个学生信息,并计算每个学生平均分数。同时,我们使用一个`sum`数组来记录3门课成绩,以便计算平均成绩。我们还定义了`highest_index`和`highest_score`变量,用于记录最高分学生信息最后,我们计算3门课平均成绩,并打印来;同时,打印最高分学生信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值