C++引用类问题,定义一个calTotal函数计算学生的英语总分和数学总分。

#include<iostream.h>
#include<string.h>
#include<iomanip.h>
struct student
{
int num;
char name[10];
int eng;
int math;
};
//请在下方给calTotal函数的实现代码

void main()
{
student stu[5]={{101,"Tom",88,30},{102,"Marry",98,100},{103,"John",60,70},{104,"Kitty",78,80},{105,"Betty",90,80}};
int engtotal;//记录英语总分
int mathtotal;//记录数学总分
cout<<"学生成绩统计"<<endl;
for (int i=0;i<5;i++)
{
cout<<setw(5)<<stu[i].num<<setw(10)<<stu[i].name<<setw(5)<<stu[i].eng<<setw(5)<<stu[i].math<<endl;
}
//请在下方调用calTotal函数

cout<<"英语总分"<<<<engtotal<<endl;
cout<<"数学总分"<<<<mathtotal<<endl;

}

用c++引用的方法类似<类型> &<变量名1>=<变量名2>来完成calTotal函数,计算engtotal和mathtotal,

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
struct student
{
 int num;
 char name[10];
 int eng;
 int math;
};
/**计算英语和数学的总分
*@param student_array 需要计算的学生数组
*@param cnt 计算的学生个数
*@param eng_total 英语总分,输出参数
*@param math_total 数学总分,输出参数
*/
void calcTatol(student *student_array, int cnt, int &eng_total, int &math_total)
{
 eng_total = 0;
 math_total = 0;
 for (int i = 0; i < cnt; i++)
 {
  student &stu = student_array[i];
  eng_total += stu.eng;
  math_total += stu.math;
 }
}
void main()
{
 student stu[5] = { { 101, "Tom", 88, 30 }, { 102, "Marry", 98, 100 }, { 103, "John", 60, 70 }, { 104, "Kitty", 78, 80 }, { 105, "Betty", 90, 80 } };
 int engtotal;//记录英语总分
 int mathtotal;//记录数学总分
 cout << "学生成绩统计" << endl;
 for (int i = 0; i<5; i++)
 {
  cout << setw(5) << stu[i].num << setw(10) << stu[i].name << setw(5) << stu[i].eng << setw(5) << stu[i].math << endl;
 }
 //请在下方调用calTotal函数
 calcTatol(stu, 5, engtotal, mathtotal);
 cout << "英语总分:" << engtotal << endl;
 cout << "数学总分:" << mathtotal << endl;
}

温馨提示:答案为网友推荐,仅供参考