假设某班有10名同学,由键盘输入,试编程打印最高分并统计90分以上学生的人数。要求:在主函数中输入学生成绩,使用两个子函数分别计算最高分和统计90分以上学生的人数。用一维数组和指针变量作函数参数。请编写相应的程序代码,并调试运行出正确结果。
时间: 2024-03-13 15:45:20 浏览: 15
好的,下面是代码实现:
```c++
#include <iostream>
using namespace std;
void calcMaxScore(int *scores, int n, int *maxScore) {
*maxScore = *scores;
for (int i = 1; i < n; i++) {
if (*(scores + i) > *maxScore) {
*maxScore = *(scores + i);
}
}
}
int calcScoreNumAbove90(int *scores, int n) {
int numAbove90 = 0;
for (int i = 0; i < n; i++) {
if (*(scores + i) >= 90) {
numAbove90++;
}
}
return numAbove90;
}
int main() {
const int n = 10;
int scores[n];
int maxScore, numAbove90;
// 输入学生成绩
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> *(scores + i);
}
// 计算最高分
calcMaxScore(scores, n, &maxScore);
cout << "最高分为:" << maxScore << endl;
// 统计90分以上学生的人数
numAbove90 = calcScoreNumAbove90(scores, n);
cout << "90分以上学生的人数为:" << numAbove90 << endl;
return 0;
}
```
以上代码中,`calcMaxScore` 函数用于计算最高分,它接受一维数组和数组长度作为参数,并通过指针变量返回最高分。`calcScoreNumAbove90` 函数用于统计90分以上学生的人数,它接受一维数组和数组长度作为参数,并返回符合条件的学生人数。在 `main` 函数中,我们先输入学生成绩,然后调用两个子函数分别计算最高分和统计90分以上学生的人数,并输出结果。
注意,我们在调用函数时使用了指针变量,这是因为一维数组在传递给函数时,会自动退化为指向第一个元素的指针。因此,我们可以使用指针变量来处理一维数组,这样可以减少数组复制的开销。