C语言中利用指针数组求5×3数组每行元素之和
时间: 2023-06-13 15:03:10 浏览: 61
可以通过如下代码实现:
```
#include <stdio.h>
int main() {
int arr[5][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}, {13, 14, 15}};
int sum[5] = {0};
int i, j;
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
sum[i] += *(*(arr + i) + j); // 或者 sum[i] += arr[i][j];
}
}
for (i = 0; i < 5; i++) {
printf("第%d行元素之和为%d\n", i + 1, sum[i]);
}
return 0;
}
```
其中,`arr`是一个二维数组,`sum`是一个一维数组,`sum[i]`表示第i行元素之和。指针数组可以像二维数组一样使用,所以可以通过`*(*(arr + i) + j)`或者`arr[i][j]`来访问二维数组的元素。
相关问题
c语言利用指针数组求5*3数组每行元素之和
可以使用以下代码:
```c
#include <stdio.h>
int main() {
int arr[5][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}, {13, 14, 15}};
int sum[5] = {0};
int i, j;
int *ptr[5]; // 定义指针数组
// 初始化指针数组
for (i = 0; i < 5; i++) {
ptr[i] = arr[i];
}
// 计算每行元素之和
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
sum[i] += *(ptr[i] + j); // 指针访问数组元素
}
}
// 输出每行元素之和
for (i = 0; i < 5; i++) {
printf("第%d行元素之和为:%d\n", i + 1, sum[i]);
}
return 0;
}
```
代码解释:
1. 定义一个二维数组 `arr` 存储数据。
2. 定义一个一维数组 `sum` 存储每行元素之和。
3. 定义一个指针数组 `ptr` 存储二维数组每行的首地址。
4. 使用循环将 `ptr` 中的元素指向 `arr` 中每行的首地址。
5. 使用双重循环遍历 `arr` 中的每个元素,累加每行元素之和并存储到 `sum` 数组中。
6. 使用循环输出每行元素之和。
9、利用指针数组求5×3数组每行元素之和。c语言代码
下面是实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
int arr[5][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}, {13, 14, 15}};
int sum[5] = {0};
int (*p)[3] = arr; // 定义一个指向二维数组arr的指针
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
sum[i] += *(*(p+i)+j); // 通过指针数组遍历二维数组,并计算每行元素之和
}
}
for (int i = 0; i < 5; i++) {
printf("第%d行元素之和为:%d\n", i+1, sum[i]);
}
return 0;
}
```
输出结果为:
```
第1行元素之和为:6
第2行元素之和为:15
第3行元素之和为:24
第4行元素之和为:33
第5行元素之和为:42
```