c 语言 一个小组有4个学生,每个学生有 3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输一(精确到小数点后2位)。要求使用指针进行实现。
时间: 2024-02-28 12:55:04 浏览: 62
好的,这是一个比较简单的 C 语言问题。我们可以使用指针和数组来实现。以下是代码实现:
```c
#include <stdio.h>
int main() {
int scores[4][3] = {{80, 90, 70}, {85, 95, 75}, {90, 85, 80}, {95, 80, 90}};
int *p;
float avg;
for (int i = 0; i < 4; i++) {
p = scores[i];
avg = ((*p + *(p+1) + *(p+2)) / 3.0);
printf("学生%d的平均成绩为:%.2f\n", i+1, avg);
}
return 0;
}
```
输出结果如下:
```
学生1的平均成绩为:80.00
学生2的平均成绩为:85.00
学生3的平均成绩为:85.00
学生4的平均成绩为:88.33
```
我们首先定义一个二维数组 `scores` 用于存储每个学生的三门课程成绩。然后我们定义了一个指针变量 `p`,用于指向每个学生的成绩数组。接下来,我们使用 for 循环遍历每个学生,计算其三门课程成绩的平均值,并使用 `printf` 函数输出结果。
注意,我们在计算平均值时,需要使用浮点数来保证精度。
相关问题
c 语言编写程序 一个小组有4个学生,每个学生有 3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输一(精确到小数点后2位)。要求使用指针进行实现。
好的,可以参考下面的代码实现:
```c
#include <stdio.h>
int main() {
// 定义二维数组存储成绩
int scores[4][3] = {
{87, 92, 78},
{88, 90, 76},
{82, 86, 84},
{94, 88, 78}
};
// 定义指针
int *p;
// 计算每个学生的平均成绩并输出
for(int i = 0; i < 4; i++) {
p = scores[i];
float avg = (*p + *(p+1) + *(p+2)) / 3.0;
printf("学生%d的平均成绩为:%.2f\n", i+1, avg);
}
return 0;
}
```
输出结果:
```
学生1的平均成绩为:85.67
学生2的平均成绩为:84.67
学生3的平均成绩为:84.00
学生4的平均成绩为:86.67
```
其中,`p = scores[i]` 将指针指向当前学生的成绩数组,`*p` 表示语文成绩,`*(p+1)` 表示数学成绩,`*(p+2)` 表示英语成绩。然后计算平均成绩并输出即可。
C语言编写程序一个小组有4个学生,每个学生有3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输出(精确到小数点后2位)。要求使用指针进行实现。
好的,以下是使用指针实现计算每个学生三门课程平均成绩的代码:
```c
#include <stdio.h>
const int ROW = 4;
const int COL = 3;
void calcAverage(int (*p)[COL], int size);
int main()
{
int scores[ROW][COL] = {
{80, 75, 90},
{85, 90, 78},
{92, 88, 82},
{87, 76, 90}
};
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);
}
}
```
代码中,我们定义了一个 `calcAverage()` 函数,用于计算每个学生三门课程的平均成绩并输出。该函数使用了一个指向二维数组的指针 `p`,并通过指针遍历数组元素来进行计算。
在 `main()` 函数中,我们定义了一个 4 行 3 列的二维数组 `scores`,并将其作为参数传递给 `calcAverage()` 函数进行计算。
输出时使用了 `printf()` 函数,以保留小数点后两位。
希望能帮到你!
阅读全文