fork download
  1. #include <stdio.h>
  2.  
  3. // ans = x * y + z を計算する関数
  4. void cal_array(int x[2][3], int y[3][2], int z[2][2], int ans[2][2]) {
  5. int i, j, k;
  6.  
  7. // x * y を計算
  8. for (i = 0; i < 2; i++) {
  9. for (j = 0; j < 2; j++) {
  10. ans[i][j] = 0;
  11. for (k = 0; k < 3; k++) {
  12. ans[i][j] += x[i][k] * y[k][j];
  13. }
  14. }
  15. }
  16.  
  17. // z を加算
  18. for (i = 0; i < 2; i++) {
  19. for (j = 0; j < 2; j++) {
  20. ans[i][j] += z[i][j];
  21. }
  22. }
  23. }
  24.  
  25. int main(void) {
  26. // 2x3 行列
  27. int x[2][3] = {
  28. {1, 2, 3},
  29. {4, 5, 6}
  30. };
  31.  
  32. // 3x2 行列
  33. int y[3][2] = {
  34. {6, 5},
  35. {4, 3},
  36. {2, 1}
  37. };
  38.  
  39. // 2x2 行列
  40. int z[2][2] = {
  41. {10, 6},
  42. {4, 9}
  43. };
  44.  
  45. int ans[2][2];
  46. int i, j;
  47.  
  48. cal_array(x, y, z, ans);
  49.  
  50. // 出力
  51. printf("ans = \n");
  52. for (i = 0; i < 2; i++) {
  53. for (j = 0; j < 2; j++) {
  54. printf("%4d", ans[i][j]);
  55. }
  56. printf("\n");
  57. }
  58.  
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
ans = 
  30  20
  60  50