用于在C中求和2D数组的函数

时间:2014-12-07 19:45:35

标签: c arrays

是否可以在C中创建一个求和数组值的函数?如果是这样,怎么样?

以下是我所拥有的:

#include <stdio.h>
int sum(int a[][], int);

int main(void){
     int a[2][2]={{1,2}, {3,4}};
    printf("sum %d", sum(a,4));
    return 0;
}

int sum(int a[][], int n){
    int *p=a[0], sum=0;
    while(p){
        sum+=*p;
        p++;
    }
    return sum;
}

2 个答案:

答案 0 :(得分:0)

#include <stdio.h>

int sum(int *a, int n);

int main(void){
     int a[2][2]={{1,2}, {3,4}};
    printf("sum %d", sum((int*)a, 4));
    return 0;
}

int sum(int *a, int n) {
    int *p = a, sum = 0;
    while(p != a + n) {
         sum += *p++;
    }
    return sum;
}

答案 1 :(得分:-1)

是的,你可以 - 我认为这应该有效:

int sum(int **a, int n) {
    int *p = a[0], sum = 0;
    for(i = 0; i < n; i++) {
         sum+=*p;
         p++;
    }
    return sum;
}