A continuación, vamos  a ver un sencillo código escrito en C++ que permite multiplicar dos matrices de 3 x 3. Cada uno de los valores de los elementos serán ingresados por el usuario y posteriormente mediante un ciclo for se hará la multiplicación de matrices y se imprimirá la matriz resultante en pantalla.

#include <iostream>

using namespace std;

int main() {
  int a[3][3], b[3][3], c[3][3]; // Definimos las matrices de entrada y la matriz resultado

  // Pedimos al usuario que ingrese los valores de la primera matriz
  cout << "Ingrese los valores de la primera matriz (columna, fila):" << endl;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      cout << "Ingrese el valor del elemento " << i+1 << "," << j+1 << ": ";
      cin >> a[i][j];
    }
  }
  cout << endl; // Añadimos un espacio para separar las matrices

  // Pedimos al usuario que ingrese los valores de la segunda matriz
  cout << "Ingrese los valores de la segunda matriz (columna, fila):" << endl;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      cout << "Ingrese el valor del elemento " << i+1 << "," << j+1 << ": ";
      cin >> b[i][j];
    }
  }
  cout << endl; // Añadimos un espacio para separar las matrices

  // Multiplicamos las dos matrices
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      c[i][j] = 0; // Inicializamos el valor de la matriz resultado en 0
      for (int k = 0; k < 3; k++) {
        c[i][j] += a[i][k] * b[k][j];
      }
    }
  }

  // Mostramos la matriz resultado
  cout << "La matriz resultante es:" << endl;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      cout << c[i][j] << " ";
    }
    cout << endl;
  }

  return 0;
}

El programa funciona de la siguiente manera: Primero, se definen dos matrices de entrada, A y B, y la matriz resultante, C. Luego, se pide al usuario que ingrese el valor de cada uno de los elementos de la primera matriz, mediante un bucle for, y se almacena en la matriz a[i][j]. Se realiza el mismo procedimiento con la segunda matriz b[i][j]. Finalmente se multiplican las dos matrices a y b utilizando otro ciclo for y la fórmula matemática correspondiente.

Recordemos que para realizar una multiplicación de dos matrices debemos seguir el siguiente procedimiento:
1.- Verificar que el número de columnas de la matriz A sea igual al número de filas de la matriz B. Si no se cumple esta condición, no es posible realizar la multiplicación entre las dos matrices.
2.- Crear una nueva matriz C, con un número de filas igual al número de filas de la matriz A y con un número de columnas igual al número de columnas de la matriz B.
3.- Para cada elemento c[i][j] en la matriz C, se debe realizar la siguiente operación:

c[i][j] = Σ(k = 1, n) a[i][k] * b[k][j] 

Donde a[i][k] y b[k][j] son los elementos de las matrices A y B, respectivamente, y n es el número de columnas de la matriz A o el número de filas de la matriz B. 

El resultado de la multiplicación se guardará en la matriz C. Y finalmente se imprime en pantalla.

El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.

NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?