假设某班有10名同学,由键盘输入,试编程打印最高分并统计90分以上学生的人数。要求:在主函数中输入学生成绩,使用两个子函数分别计算最高分和统计90分以上学生的人数。用一维数组和指针变量作函数参数。请编写相应的程序代码,并调试运行出正确结果。
时间: 2024-03-10 07:50:12 浏览: 56
以下是符合要求的代码实现:
```c
#include <stdio.h>
void maxScore(int *score, int n, int *max) {
*max = score[0];
for (int i = 1; i < n; i++) {
if (score[i] > *max) {
*max = score[i];
}
}
}
int countAbove90(int *score, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
if (score[i] >= 90) {
count++;
}
}
return count;
}
int main() {
int score[10];
int max, above90Count;
printf("请输入10名同学的成绩:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &score[i]);
}
maxScore(score, 10, &max);
above90Count = countAbove90(score, 10);
printf("最高分为:%d\n", max);
printf("90分以上学生的人数为:%d\n", above90Count);
return 0;
}
```
在这个代码中,我们定义了两个子函数 `maxScore` 和 `countAbove90`,分别用来计算最高分和90分以上学生的人数。这两个函数都接收一个整型数组和数组长度作为参数,并使用指针变量来返回计算结果。
在 `main` 函数中,我们首先从用户输入读取10名同学的成绩,并调用 `maxScore` 和 `countAbove90` 函数计算最高分和90分以上学生的人数。然后输出这两个结果。
阅读全文