下列的代码是对二维数组的元素分类统计,用指针完成。请在//后面加上注释。
#include #include // #define M 20// #define N 20 int main() { int a[M][N],*m,*n,*sum1,*sum2,id=1;// void input(int a[M][N],int *m,int *n); void work(int a[M][N],int *m,int *n,int *sum1,int *sum2);// m = (int *)malloc(sizeof(int));// n = (int *)malloc(sizeof(int)); sum1 = (int *)malloc(sizeof(int)); sum2 = (int *)malloc(sizeof(int)); while(scanf("%d %d",m,n)!=EOF) { input(a,m,n);// printf("Case %d:\n",id++); work(a,m,n,sum1,sum2);// } return 0; } void input(int a[M][N],int *m,int *n) { int i,j; for(i=0;i<*m;i++) { for(j=0;j<*n;j++) { scanf("%d",a[i]+j);// } } } void work(int a[M][N],int *m,int *n,int *sum1,int *sum2) { int i,j; *sum1 = 0;// *sum2 = 0; for(i=0;i<*m;i++) { for(j=0;j0) (*sum1) += *(*(a+i)+j);// else (*sum2)+= *(*(a+i)+j); } } printf("正数的和是%d,负数的和是%d.\n",*sum1,*sum2); }
有多组测试数据,每组数据的第一行有两个整数m、n,接着有m行、n列个整数。
按样例输出。
2 3 4 5 6 0 -4 9
Case 1: 正数的和是24,负数的和是-4.