设计一个程序计算某班某门课程的平均成绩,同时统计大于平均成绩的人数。对该问题进行分析写出你的程序设计方案包括 (1)需要编写的函数原型(即 函数名、函数类型、形参)及该函数的功能,各形参的类型及意义 (2)各函数的调用关系。 本小题不必写出每个函数的具体实现。
时间: 2023-12-03 20:45:08 浏览: 48
函数原型:
```C++
double averageScore(int* scores, int size); // 计算平均成绩
int countAboveAverage(int* scores, int size); // 统计大于平均成绩的人数
```
其中,`scores`是存储学生成绩的数组,`size`表示数组的大小。
`averageScore`函数用于计算平均成绩,返回值为平均成绩的浮点数。
`countAboveAverage`函数用于统计大于平均成绩的人数,返回值为大于平均成绩的人数的整数。
程序设计方案:
1. 定义一个存储学生成绩的数组 `scores` 和数组大小 `size`。
2. 调用 `averageScore` 函数,计算平均成绩 `average`。
3. 调用 `countAboveAverage` 函数,统计大于平均成绩的人数 `count`。
4. 输出平均成绩和大于平均成绩的人数。
函数调用关系:
```C++
double average = averageScore(scores, size);
int count = countAboveAverage(scores, size);
```
相关问题
C语言设计一个程序计算某班某门课程的平均成绩,同时统计大于平均成绩的人数。
以下是用C语言编写的计算某班某门课程平均成绩并统计大于平均成绩的人数的程序:
```c
#include <stdio.h>
#define MAX_STUDENTS 50
int main()
{
int num_students, i, sum = 0, above_avg = 0;
float avg_score;
int scores[MAX_STUDENTS];
printf("请输入学生人数(最多%d人):", MAX_STUDENTS);
scanf("%d", &num_students);
printf("请输入%d个学生成绩:\n", num_students);
for (i = 0; i < num_students; i++) {
printf("第%d个学生成绩:", i + 1);
scanf("%d", &scores[i]);
sum += scores[i];
}
avg_score = (float) sum / num_students;
for (i = 0; i < num_students; i++) {
if (scores[i] > avg_score) {
above_avg++;
}
}
printf("平均成绩为:%.2f\n", avg_score);
printf("大于平均成绩的人数为:%d\n", above_avg);
return 0;
}
```
程序首先要求输入学生人数和每个学生的成绩,然后计算平均成绩和大于平均成绩的人数,最后输出结果。其中,数组 `scores` 用于存储每个学生的成绩,变量 `sum` 用于累加每个学生的成绩,变量 `above_avg` 用于统计大于平均成绩的人数。
用c语言设计一个程序计算某班某门课程的平均成绩,同时统计大于平均成绩的人数。对该问题进行分析,写出你的程序设计方案,包括(1)需要编写的函数原型(即函数名、函数类型、形参)及该函数的功能,各形参的类型及意义(2)各函数的调用关系。
1. 函数设计方案:
函数名:average_score
函数类型:void
形参:
- int scores[]:存储学生成绩的数组
- int n:学生人数
- float *average:指向平均成绩的指针
- int *count:指向大于平均成绩人数的指针
函数功能:计算某班某门课程的平均成绩,同时统计大于平均成绩的人数
函数名:print_result
函数类型:void
形参:
- float average:平均成绩
- int count:大于平均成绩的人数
函数功能:输出计算结果
2. 各函数的调用关系:
average_score函数计算平均成绩和大于平均成绩的人数,然后将结果传递给print_result函数进行输出。主函数调用average_score函数,再调用print_result函数输出结果。
完整的程序如下:
```c
#include <stdio.h>
void average_score(int scores[], int n, float *average, int *count);
void print_result(float average, int count);
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("请输入%d位学生的成绩:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
float average;
int count;
average_score(scores, n, &average, &count);
print_result(average, count);
return 0;
}
void average_score(int scores[], int n, float *average, int *count) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
*average = (float)sum / n;
*count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > *average) {
(*count)++;
}
}
}
void print_result(float average, int count) {
printf("平均成绩:%.2f,大于平均成绩的人数:%d\n", average, count);
}
```