//array2d.c --处理二维数组的函数
#include <stdio.h>
#define ROWS 3
#define COLS 4
void SUM_rows (int ar[][COLS],int rows);
void SUM_cols (int [][COLS],int );
int sum2d (int (*ar)[COLS],int rows) ;
int main (void)
{
int junk [ROWS][COLS] = {
{2,4,6,8},
{3,5,7,9},
{12,10,8,6}
};
SUM_rows (junk,ROWS);
SUM_cols (junk,ROWS);
printf ("Sum of all elements = %d\n",sum2d(junk,ROWS));
return 0;
}
void SUM_rows (int ar[][COLS],int rows)
{
int r;
int c;
int tot;
for (r=0;r<rows;r++)
{
tot=0;
for (c=0;c<COLS;c++)
tot += ar[r][c];
printf ("row %d: sum=%d\n",r,tot);
}
}
void SUM_cols (int ar[][COLS],int rows)
{
int r;
int c;
int tot;
for (c=0;c<COLS;c++)
{
tot=0;
for (r=0;r<rows;r++)
tot += ar[r][c];
printf("col %d; sum = %d\n",c,tot);
}
}
int sum2d (int ar[][COLS],int rows)
{
int r;
int c;
int tot=0;
for (r=0;r<rows;r++)
for (c=0;c<COLS;c++)
tot += ar[r][c];
return tot;
}
#include <stdio.h>
#define ROWS 3
#define COLS 4
void SUM_rows (int ar[][COLS],int rows);
void SUM_cols (int [][COLS],int );
int sum2d (int (*ar)[COLS],int rows) ;
int main (void)
{
int junk [ROWS][COLS] = {
{2,4,6,8},
{3,5,7,9},
{12,10,8,6}
};
SUM_rows (junk,ROWS);
SUM_cols (junk,ROWS);
printf ("Sum of all elements = %d\n",sum2d(junk,ROWS));
return 0;
}
void SUM_rows (int ar[][COLS],int rows)
{
int r;
int c;
int tot;
for (r=0;r<rows;r++)
{
tot=0;
for (c=0;c<COLS;c++)
tot += ar[r][c];
printf ("row %d: sum=%d\n",r,tot);
}
}
void SUM_cols (int ar[][COLS],int rows)
{
int r;
int c;
int tot;
for (c=0;c<COLS;c++)
{
tot=0;
for (r=0;r<rows;r++)
tot += ar[r][c];
printf("col %d; sum = %d\n",c,tot);
}
}
int sum2d (int ar[][COLS],int rows)
{
int r;
int c;
int tot=0;
for (r=0;r<rows;r++)
for (c=0;c<COLS;c++)
tot += ar[r][c];
return tot;
}