C语言编写程序,并使用二维数组,其中需定义一个输入函数,一个小组有4个学生,每个学生有3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输出(精确到小数点后2位)。要求使用指针进行实现。
时间: 2024-02-22 15:55:42 浏览: 64
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是使用二维数组和指针实现计算每个学生三门课程平均成绩的代码,其中包括了一个输入函数:
```c
#include <stdio.h>
const int ROW = 4;
const int COL = 3;
void calcAverage(int (*p)[COL], int size);
void inputScores(int (*p)[COL], int size);
int main()
{
int scores[ROW][COL];
inputScores(scores, ROW);
calcAverage(scores, ROW);
return 0;
}
void calcAverage(int (*p)[COL], int size)
{
double sum;
for (int i = 0; i < size; i++)
{
sum = 0;
for (int j = 0; j < COL; j++)
{
sum += *(*(p + i) + j);
}
printf("学生%d的平均成绩为:%.2f\n", i + 1, sum / COL);
}
}
void inputScores(int (*p)[COL], int size)
{
printf("请输入每个学生的成绩:\n");
for (int i = 0; i < size; i++)
{
printf("请输入第%d个学生的成绩(语文、数学、英语):\n", i + 1);
for (int j = 0; j < COL; j++)
{
scanf("%d", (*(p + i) + j));
}
}
}
```
代码中,我们定义了一个 `calcAverage()` 函数,用于计算每个学生三门课程的平均成绩并输出。该函数使用了一个指向二维数组的指针 `p`,并通过指针遍历数组元素来进行计算。
另外,我们还定义了一个 `inputScores()` 函数,用于输入每个学生的成绩。在该函数中,我们使用了指针遍历二维数组元素,并使用 `scanf()` 函数进行输入。
在 `main()` 函数中,我们首先定义了一个 4 行 3 列的二维数组 `scores`,然后调用 `inputScores()` 函数进行输入,最后调用 `calcAverage()` 函数进行计算和输出。
输出时使用了 `printf()` 函数,以保留小数点后两位。
希望能帮到你!
阅读全文