Почему неправильно считает матрицу?

LB02

#include "stdafx.h"
#include "conio.h"
#include"stdio.h"
#define N 3
#define A printf("can't open a file\n");
 
FILE *f,*p;
int m, i, j, T, a[N][N], b[N][N], c[N][N];
int menu();
 
 
int main()
{
 
if (!(f = _fsopen("f.txt", "r", _SH_DENYNO))) {
        A
            return 1;
    }
           if (!(p = _fsopen("p.txt", "r", _SH_DENYNO))) {
               A
                   return 1;
           }
           for (i = 0; i < N; i++) {
               for (j = 0; j < N; j++) {
                   c[i][j] = 0;
                   for (T = 0; T < N; T++) {
                       fscanf_s(f, "%d",&a[i][T]);
                       fscanf_s(p, "%d",&b[T][j]);
                       c[i][j] += a[i][T] * b[T][j];
                      
                   }
               }
           }
           for (i = 0; i < N; i++) {
               for (j = 0; j < N; j++)
                   printf("%d ", c[i][j]);
               printf("\n");}
                          return 0;
           }
ниже два файла, в которых записаны матрицы
2 ответа

LB02

LB02, Обратите внимание. Вам нужно ввести всего 2*N*N чисел (заполнить 2 матрицы) А вы водите 2*N*N*N (3 вложенных цикла) Делу можно попробовать помочь так. Сначала все ввести, а потом уже считать.


LB02

Спасибо!Все заработало!