从键盘输入n个学生的学号和成绩,计算他们的平均成绩,并列出成绩最好的前t名学生的学号和分数。要求:
3.编写自定义函数找出二维数组(3*4)中元素的最大值与最小值,并返回其最大值与最小值,并在main函数中测试结果。要求:
#include <iostream>
#include <string>
using namespace std;
struct st
{
int num; //学号
float g; //成绩
};
void stuScanf(struct st student[], int n)
{
cout << "请依次输入学生的学号和分数:" << endl;
for (int i = 0; i < n; i++) //输入学生得信息
{
cin >> student[i].num;
cin >> student[i].g;
}
}
float stuMid(struct st student[], int n)
{
float mid = 0, sum = 0;
for (int i = 0; i < n; i++)
sum += student[i].g;
mid = sum / n;
return mid;
}
void stuPrint(struct st student[], int n, int t) //打印前t个学上的成绩
{
struct st temp; //中间结构体变量
for (int k = 0; k < n; k++) //对所有学生得成绩排序
{
for (int j = k + 1; j < n; j++)
{
if (student[j].g > student[k].g)
{
temp = student[k];
student[k] = student[j];
student[j] = temp;
}
}
}
for (int i = 0; i < t; i++) //输出前n个学生得成绩
{
cout << student[i].num << "-" << student[i].g << endl;
}
}
int main()
{
int n, t;
cout << "请输入学生的人数:";
cin >> n;
st* student = new st[n];
stuScanf(student, n); //输入学生学号和成绩
cout << "学生的平均成绩为:" << stuMid(student, n) << endl;
cout << "请输入要排序的学生人数:";
cin >> t;
stuPrint(student, n, t); //排序并输出前t名学生得成绩
}