假设某班有10名同学,由键盘输入,试编程打印最高分并统计90分以上学生的人数。要求:在主函数中输入学生成绩,使用两个子函数分别计算最高分和统计90分以上学生的人数。用一维数组和指针变量作函数参数。请编写相应的程序代码,并调试运行出正确结果。
时间: 2024-02-21 20:01:04 浏览: 43
输入十个学生的学号和成绩,输出最高分及学号
好的,下面是代码:
```c
#include <stdio.h>
void get_max(int *score, int n, int *max_score)
{
*max_score = *score;
for (int i = 1; i < n; i++)
{
if (*(score + i) > *max_score)
{
*max_score = *(score + i);
}
}
}
int count_90up(int *score, int n)
{
int count = 0;
for (int i = 0; i < n; i++)
{
if (*(score + i) >= 90)
{
count++;
}
}
return count;
}
int main()
{
int scores[10];
int max_score, count;
for (int i = 0; i < 10; i++)
{
printf("请输入第%d个同学的成绩:", i + 1);
scanf("%d", &scores[i]);
}
get_max(scores, 10, &max_score);
count = count_90up(scores, 10);
printf("最高分是:%d\n", max_score);
printf("90分以上学生的人数是:%d\n", count);
return 0;
}
```
这个程序中,我们定义了两个子函数 `get_max` 和 `count_90up` 分别计算最高分和统计90分以上学生的人数。在主函数中,我们先用键盘输入学生成绩,然后分别调用这两个子函数来计算结果,并输出。需要注意的是,我们使用了指针变量作为函数参数,来避免复制数组的开销。
阅读全文