练习专区

今天的一小步就是明天的一大步
Problem 1988 二维数组与指针(20分)
Accepted: 0   Total Submit: 0
Time Limit: 1000ms   Memory Limit: 30720KB
Description

下列的代码是对二维数组的元素分类统计,用指针完成。请在//后面加上注释

#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);
}


Input

有多组测试数据,每组数据的第一行有两个整数m、n,接着有m行、n列个整数。

Output

按样例输出。

Sample Input
2 3
4 5 6
0 -4 9
Sample Output
Case 1:
正数的和是24,负数的和是-4.
Hint
提交     返回