1
0

array2d.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // array2d.c -- functions for 2d arrays
  2. #include <stdio.h>
  3. #define ROWS 3
  4. #define COLS 4
  5. void sum_rows(int ar[][COLS], int rows);
  6. void sum_cols(int [][COLS], int ); // ok to omit names
  7. int sum2d(int (*ar)[COLS], int rows); // another syntax
  8. int main(void)
  9. {
  10. int junk[ROWS][COLS] = {
  11. {2,4,6,8},
  12. {3,5,7,9},
  13. {12,10,8,6}
  14. };
  15. sum_rows(junk, ROWS);
  16. sum_cols(junk, ROWS);
  17. printf("Sum of all elements = %d\n", sum2d(junk, ROWS));
  18. return 0;
  19. }
  20. void sum_rows(int ar[][COLS], int rows)
  21. {
  22. int r;
  23. int c;
  24. int tot;
  25. for (r = 0; r < rows; r++)
  26. {
  27. tot = 0;
  28. for (c = 0; c < COLS; c++)
  29. tot += ar[r][c];
  30. printf("row %d: sum = %d\n", r, tot);
  31. }
  32. }
  33. void sum_cols(int ar[][COLS], int rows)
  34. {
  35. int r;
  36. int c;
  37. int tot;
  38. for (c = 0; c < COLS; c++)
  39. {
  40. tot = 0;
  41. for (r = 0; r < rows; r++)
  42. tot += ar[r][c];
  43. printf("col %d: sum = %d\n", c, tot);
  44. }
  45. }
  46. int sum2d(int ar[][COLS], int rows)
  47. {
  48. int r;
  49. int c;
  50. int tot = 0;
  51. for (r = 0; r < rows; r++)
  52. for (c = 0; c < COLS; c++)
  53. tot += ar[r][c];
  54. return tot;
  55. }