C语言代码思路,题目如下创建如下二维数组5*4 Arr2D,以指针形式访问蓝色和红色子矩阵,并输出红色和蓝色区域各自的总和、均值。 矩阵为 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 红色矩阵就是原来矩阵第一行到第三行,第一列到第二列,蓝色矩阵就是第二行到第四行,第二列到第四列
时间: 2024-01-05 07:02:33 浏览: 36
首先,我们需要定义一个二维数组Arr2D,然后将给定的矩阵元素赋值给它。代码如下:
```
int Arr2D[5][4] = {{1, 2, 3, 4},
{2, 4, 6, 8},
{3, 6, 9, 12},
{4, 8, 12, 16},
{5, 10, 15, 20}};
```
接下来,我们需要定义两个指针,分别指向红色矩阵和蓝色矩阵的首地址。红色矩阵的首地址可以通过Arr2D[0][0]来获得,而蓝色矩阵的首地址可以通过Arr2D[1][1]来获得。代码如下:
```
int *Red = &Arr2D[0][0];
int *Blue = &Arr2D[1][1];
```
接着,我们可以通过指针访问红色矩阵和蓝色矩阵的元素,并计算它们的总和和均值。计算总和和均值的方法与一维数组类似,只需要用指针替代数组下标即可。代码如下:
```
// 计算红色矩阵的总和和均值
int RedSum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
RedSum += *(Red + i * 4 + j);
}
}
float RedAvg = (float)RedSum / 6.0;
// 计算蓝色矩阵的总和和均值
int BlueSum = 0;
for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
BlueSum += *(Blue + i * 4 + j);
}
}
float BlueAvg = (float)BlueSum / 9.0;
```
最后,我们可以输出红色矩阵和蓝色矩阵各自的总和和均值。代码如下:
```
printf("Red matrix: sum = %d, avg = %.2f\n", RedSum, RedAvg);
printf("Blue matrix: sum = %d, avg = %.2f\n", BlueSum, BlueAvg);
```
完整代码如下:
```
#include <stdio.h>
int main() {
int Arr2D[5][4] = {{1, 2, 3, 4},
{2, 4, 6, 8},
{3, 6, 9, 12},
{4, 8, 12, 16},
{5, 10, 15, 20}};
int *Red = &Arr2D[0][0];
int *Blue = &Arr2D[1][1];
int RedSum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
RedSum += *(Red + i * 4 + j);
}
}
float RedAvg = (float)RedSum / 6.0;
int BlueSum = 0;
for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
BlueSum += *(Blue + i * 4 + j);
}
}
float BlueAvg = (float)BlueSum / 9.0;
printf("Red matrix: sum = %d, avg = %.2f\n", RedSum, RedAvg);
printf("Blue matrix: sum = %d, avg = %.2f\n", BlueSum, BlueAvg);
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)