矩阵运算.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include <stdio.h>
  2. #define MAX_SIZE 10
  3. void matrix_add(int A[][MAX_SIZE], int B[][MAX_SIZE], int N) {
  4. int i,j;
  5. for (i = 0; i < N; i++) {
  6. for (j = 0; j < N; j++) {
  7. A[i][j] += B[i][j];
  8. }
  9. }
  10. }
  11. void matrix_subtract(int A[][MAX_SIZE], int B[][MAX_SIZE], int N) {
  12. int i,j;
  13. for (i = 0; i < N; i++) {
  14. for (j = 0; j < N; j++) {
  15. A[i][j] -= B[i][j];
  16. }
  17. }
  18. }
  19. void print_matrix(int A[][MAX_SIZE], int N) {
  20. int i,j;
  21. for (i = 0; i < N; i++) {
  22. for (j = 0; j < N; j++) {
  23. printf("%5d", A[i][j]);
  24. }
  25. printf("\n");
  26. }
  27. }
  28. int main() {
  29. int N;
  30. int A[MAX_SIZE][MAX_SIZE];
  31. int B[MAX_SIZE][MAX_SIZE];
  32. char op;
  33. int i,j;
  34. scanf("%d", &N);
  35. for (i = 0; i < N; i++) {
  36. for (j = 0; j < N; j++) {
  37. scanf("%d", &A[i][j]);
  38. }
  39. }
  40. while (1) {
  41. getchar();
  42. scanf("%c", &op);
  43. if (op == '#') {
  44. break;
  45. }
  46. for (i = 0; i < N; i++) {
  47. for (j = 0; j < N; j++) {
  48. scanf("%d", &B[i][j]);
  49. }
  50. }
  51. if (op == '+') {
  52. matrix_add(A, B, N);
  53. } else if (op == '-') {
  54. matrix_subtract(A, B, N);
  55. }
  56. }
  57. print_matrix(A, N);
  58. return 0;
  59. }