C语言用指针数组求3*5数组各行元素之和,并输出每行的求和结果
时间: 2024-02-24 18:54:33 浏览: 25
好的,我可以为您解答这个问题。
下面是用指针数组求3*5数组各行元素之和,并输出每行的求和结果的 C 代码:
```c
#include <stdio.h>
int main() {
int arr[3][5] = {{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15}};
int *p[3] = {arr[0], arr[1], arr[2]};
int sum;
for (int i = 0; i < 3; i++) {
sum = 0;
for (int j = 0; j < 5; j++) {
sum += *(p[i] + j);
}
printf("第 %d 行的求和结果为:%d\n", i + 1, sum);
}
return 0;
}
```
在这个程序中,我们首先定义了一个 3 行 5 列的整型数组 `arr`,然后定义了一个指针数组 `p`,其中每个元素都指向数组 `arr` 的每一行。
接下来,我们使用双重循环遍历 `p` 数组中的每一行,并计算每一行元素的和。最后,我们使用 `printf` 函数输出每一行的求和结果。
希望能帮到您!
相关问题
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. 使用循环输出每行元素之和。
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 *p;
int sum;
for (int i = 0; i < 5; i++) {
p = arr[i];
sum = 0;
for (int j = 0; j < 3; j++) {
sum += *(p + j);
}
printf("第%d行元素之和:%d\n", i+1, sum);
}
return 0;
}
```
在上述代码中,我们定义了一个二维整型数组 `arr`,并初始化了它的元素。
然后,我们定义了一个整型指针变量 `p`,用于指向数组的行。
接着,我们使用循环遍历数组的每一行,将指针 `p` 指向当前行的首元素。
在内层循环中,我们使用指针访问当前行的每一个元素,并将它们累加到变量 `sum` 中。
最后,我们输出每一行元素之和的结果。
运行上述程序,输出结果如下:
```
第1行元素之和:6
第2行元素之和:15
第3行元素之和:24
第4行元素之和:33
第5行元素之和:42
```