怎么调用编写程序,将输入的20名学生的成绩保存在数组中,编写函数max(),min(),ave()分别计算其最高分、最低分和平均分。
#include <stdio.h>
#define NUM_STUDENTS 20
int max(int arr[], int size) {
int i, max = arr[0];
for (i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int min(int arr[], int size) {
int i, min = arr[0];
for (i = 1; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
double ave(int arr[], int size) {
int i, sum = 0;
double average;
for (i = 0; i < size; i++) {
sum += arr[i];
}
average = (double) sum / size;
return average;
}
int main() {
int scores[NUM_STUDENTS];
int i;
printf("请输入20名学生的成绩:\n");
for (i = 0; i < NUM_STUDENTS; i++) {
scanf("%d", &scores[i]);
}
int max_score = max(scores, NUM_STUDENTS);
int min_score = min(scores, NUM_STUDENTS);
double ave_score = ave(scores, NUM_STUDENTS);
printf("最高分: %d\n", max_score);
printf("最低分: %d\n", min_score);
printf("平均分: %.2f\n", ave_score);
return 0;
}
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
下面是用 C 语言编写的程序,实现将输入的20名学生的成绩保存在数组中,以及对其进行最高分、最低分和平均分的计算:
#include <stdio.h>
// 定义常量
#define N 20
// 函数声明
int max(int arr[], int n);
int min(int arr[], int n);
double ave(int arr[], int n);
int main() {
int scores[N];
int i;
// 输入学生成绩并存入数组
printf("请输入%d名学生的成绩:\n", N);
for (i = 0; i < N; i++) {
printf("请输入第%d名学生的成绩:", i + 1);
scanf("%d", &scores[i]);
}
// 计算最高分、最低分和平均分
int max_score = max(scores, N);
int min_score = min(scores, N);
double ave_score = ave(scores, N);
// 输出结果
printf("最高分:%d\n", max_score);
printf("最低分:%d\n", min_score);
printf("平均分:%.2f\n", ave_score);
return 0;
}
// 计算数组中的最高分
int max(int arr[], int n) {
int i;
int max = arr[0];
for (i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// 计算数组中的最低分
int min(int arr[], int n) {
int i;
int min = arr[0];
for (i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
// 计算数组中的平均分
double ave(int arr[], int n) {
int i;
int sum = 0;
for (i = 0; i < n; i++) {
sum += arr[i];
}
return (double) sum / n;
}
在上述程序中,我们首先定义了一个名为 N
的常量,用于表示学生人数。然后,我们定义了一个数组 scores
,用于存储学生成绩。接着,我们使用 for
循环结构,通过 scanf
函数从键盘输入学生成绩,并将其存入数组中。
接下来,我们定义了三个函数 max
、min
和 ave
,用于计算数组中的最高分、最低分和平均分。这三个函数都接受两个参数:一个数组和该数组的长度。在函数中,我们使用 for
循环结构遍历数组,并使用相应的算法计算最高分、最低分和平均分,并将其作为函数的返回值。
最后,我们在 main
函数中,调用这三个函数,分别计算最高分、最低分和平均分,并使用 printf
输出结果。注意,在输出平均分时,我们使用了 %.2f
的格式字符串,以保留小数点后两位。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不知道你这个问题是否已经解决, 如果还没有解决的话:思路:
代码实现:
#include <stdio.h>
int max(int arr[], int size) {
int max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int min(int arr[], int size) {
int min = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
double ave(int arr[], int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum / size;
}
int main() {
int scores[20];
printf("请输入20名学生的成绩:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &scores[i]);
}
int max_score = max(scores, 20);
int min_score = min(scores, 20);
double ave_score = ave(scores, 20);
printf("最高分:%d\n最低分:%d\n平均分:%.2f\n", max_score, min_score, ave_score);
return 0;
}
代码说明:
运行结果:
请输入20名学生的成绩:
80 55 90 99 76 85 46 62 71 88 79 93 81 73 59 64 77 87 70 82
最高分:99
最低分:46
平均分:76.00