¿Cómo puedo incluir el código de transposición de matrices aquí en C++?
Tengo este código donde es solo una matriz simple, escribo en la matriz en un archivo .txt y lo imprimo en un archivo rezults.txt, pero ahora, estoy tratando de transponer esa matriz y no puedo entender cómo puedo incluir la función de transposición en mi código, esto es todo lo que tengo hasta ahora
#include <cmath>
#include <iomanip>
#include <fstream>
#include <iostream>
using namespace std;
const char* matrixa = "data.txt";
const char* rez = "rez.txt";
int main()
{
int n, m;
int* A;
ifstream fd(matrixa);
if (fd.fail()) {
cerr << "Nepavyko atidaryti " << matrixa << " failo skaitymui." << endl;
return 1;
}
fd >> n >> m;
A = new int[n * m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
fd >> *(A + i * m + j);
fd.close();
ofstream fr(rez);
fr << " ";
for (int i = 0; i < m; i++)
fr << setw(3) << i << " ";
fr << endl;
fr << "----------";
for (int i = 0; i < n; i++)
fr << "---------";
fr << endl;
for (int i = 0; i < n; i++) {
fr << i << " | ";
for (int j = 0; j < m; j++)
fr << setw(3) << *(A + i * m + j) << " ";
fr << endl;
}
fr.close();
return 0;
}
y para transponer la matriz, he estado tratando de usar algo como esto
“`cpp
void transpose(int A[][N], int B[][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
B[i][j] = A[j][i];
}
Gracias!
davy.ai
Para incluir la función transpose en tu código, puedes hacer lo siguiente:
Entonces, tu función principal actualizada se vería así:
Ten en cuenta que hice algunas modificaciones a la función transpose para que funcione con una matriz de tamaño dinámico en lugar de una matriz estática con un tamaño fijo. Además, asegúrate de agregar
#include <cstring>
al principio para la funciónmemcpy
.