用c中的指针在二维数组中求和
Find the sum in 2d array with pointers in c
我试过了,但我得到了 "sum=6",这是错误的。
代码有什么问题?
这是代码:
#include <stdio.h>
#define ROW 2
#define COL 3
int sum(int(*array)[3]);
int main(void)
{
int a[ROW][COL] = { {1 , 2, 3} ,
{4 , 5, 6} };
printf(" sum = %d\n", sum (a));
return 0;
}
int sum(int(*array)[3])
{
int i,j, sum = 0;
for (i =0; i < ROW ; i ++) {
for (j =0; j < COL ; j ++) {
sum = sum + *(*( array +i )+j);
}
}
}
您忘记 return 函数中 sum
的值
int sum(int(*array)[3])
{
int i,j, sum = 0;
for (i =0; i < ROW ; i ++) {
for (j =0; j < COL ; j ++) {
sum = sum + *(*( array +i )+j);
}
}
return sum; /* HERE */
}
注意
sum = sum + array[i][j];
比
更具可读性
sum = sum + *(*( array +i )+j);
我试过了,但我得到了 "sum=6",这是错误的。 代码有什么问题? 这是代码:
#include <stdio.h>
#define ROW 2
#define COL 3
int sum(int(*array)[3]);
int main(void)
{
int a[ROW][COL] = { {1 , 2, 3} ,
{4 , 5, 6} };
printf(" sum = %d\n", sum (a));
return 0;
}
int sum(int(*array)[3])
{
int i,j, sum = 0;
for (i =0; i < ROW ; i ++) {
for (j =0; j < COL ; j ++) {
sum = sum + *(*( array +i )+j);
}
}
}
您忘记 return 函数中 sum
的值
int sum(int(*array)[3])
{
int i,j, sum = 0;
for (i =0; i < ROW ; i ++) {
for (j =0; j < COL ; j ++) {
sum = sum + *(*( array +i )+j);
}
}
return sum; /* HERE */
}
注意
sum = sum + array[i][j];
比
更具可读性sum = sum + *(*( array +i )+j);