*2、 分别求取王华、李阳两同学三门课(数学、外语、计算机)的平均成绩,并作出评价( 大于80为优秀、大于60为 合格、小于60为不合格)。(要求: 使用指针函数、素。_函数指针、指针数组。_.数组指钍).
时间: 2023-03-31 08:05:08 浏览: 84
王华的平均成绩为:(数学+外语+计算机)/3
李阳的平均成绩为:(数学+外语+计算机)/3
使用指针函数和数组指针的代码如下:
```c
#include <stdio.h>
#define COURSE_NUM 3
void get_average(int *scores, int num, double *average) {
int sum = ;
for (int i = ; i < num; i++) {
sum += *(scores + i);
}
*average = (double)sum / num;
}
int main() {
int scores[COURSE_NUM][2] = {{80, 90}, {70, 80}, {60, 70}};
double averages[2][COURSE_NUM];
for (int i = ; i < 2; i++) {
for (int j = ; j < COURSE_NUM; j++) {
get_average(*(scores + j) + i, 2, &averages[i][j]);
}
}
for (int i = ; i < 2; i++) {
printf("%s的平均成绩为:数学%.2f,外语%.2f,计算机%.2f,评价为:",
i == ? "王华" : "李阳", averages[i][], averages[i][1], averages[i][2]);
for (int j = ; j < COURSE_NUM; j++) {
if (averages[i][j] >= 80) {
printf("%s优秀,", j == ? "数学" : j == 1 ? "外语" : "计算机");
} else if (averages[i][j] >= 60) {
printf("%s合格,", j == ? "数学" : j == 1 ? "外语" : "计算机");
} else {
printf("%s不合格,", j == ? "数学" : j == 1 ? "外语" : "计算机");
}
}
printf("\n");
}
return ;
}
```
使用函数指针和指针数组的代码如下:
```c
#include <stdio.h>
#define COURSE_NUM 3
void get_average(int *scores, int num, double *average) {
int sum = ;
for (int i = ; i < num; i++) {
sum += *(scores + i);
}
*average = (double)sum / num;
}
int main() {
int scores[COURSE_NUM][2] = {{80, 90}, {70, 80}, {60, 70}};
double (*averages)[COURSE_NUM] = malloc(sizeof(double) * 2 * COURSE_NUM);
for (int i = ; i < 2; i++) {
for (int j = ; j < COURSE_NUM; j++) {
get_average(*(scores + j) + i, 2, *(averages + i) + j);
}
}
for (int i = ; i < 2; i++) {
printf("%s的平均成绩为:数学%.2f,外语%.2f,计算机%.2f,评价为:",
i == ? "王华" : "李阳", *(*(averages + i) + ), *(*(averages + i) + 1), *(*(averages + i) + 2));
for (int j = ; j < COURSE_NUM; j++) {
if (*(*(averages + i) + j) >= 80) {
printf("%s优秀,", j == ? "数学" : j == 1 ? "外语" : "计算机");
} else if (*(*(averages + i) + j) >= 60) {
printf("%s合格,", j == ? "数学" : j == 1 ? "外语" : "计算机");
} else {
printf("%s不合格,", j == ? "数学" : j == 1 ? "外语" : "计算机");
}
}
printf("\n");
}
free(averages);
return ;
}
```
以上两段代码都可以求出王华和李阳的平均成绩,并根据成绩评价进行输出。
阅读全文