Boas, o programa é o seguinte:
Cálculo da matriz transposta de uma matriz de qualquer dimensão.
Eis o código que tenho:
char FicheiroNome[80];
char FicheiroDrive;
char drive[80];
FILE * determinante;
int opcao,opcao1,p,LinhasTransposta,ColunasTransposta;
float DetMat_a[2][2],DetMat_c,a,b,c,d,det1,det2,test[4],TranMat_a[30][30],TranMat_b[30][30];
{
system("cls");
ImprimirCabecalho(h, FOREGROUND_GREEN | FOREGROUND_BLUE |FOREGROUND_INTENSITY | BACKGROUND_RED);
ImprimirTextoCor(h,0,"");
ResetCorTextConsola(h);
printf("A Matriz que pretende obter a transposta tem quantas linhas?\n");
scanf_s(" %d",&LinhasTransposta);
printf("\nA Matriz que pretende obter a transposta tem quantas Colunas?\n");
scanf_s(" %d",&ColunasTransposta);
for (int lin=0;lin<LinhasTransposta;lin++)
{
for(int col=0;col<ColunasTransposta;col++)
{
printf("\nQual o elemento [%d][%d] da matriz? ",lin+1,col+1);
scanf_s("%f",&TranMat_a[lin][col]);
}
}
for (int lin=0;lin<10;lin++)
{
for(int col=0;col<10;col++)
{
TranMat_b[lin][col]=TranMat_a[col][lin];
}
printf("\n");
}
system("cls");
printf("A Transposta da Matriz:\n");
for (int lin=0;lin<LinhasTransposta;lin++)
{
for(int col=0;col<ColunasTransposta;col++)
{
printf("%4.2f\t",TranMat_a[lin][col]);
}
printf("\n");
}
printf("eh:\n");
for (int lin=0;lin<ColunasTransposta;lin++)
{
for(int col=0;col<LinhasTransposta;col++)
{
printf("%4.2f\t",TranMat_b[lin][col]);
}
printf("\n");
}
printf("\n\n");
system("pause");
system("cls");
}
O problema é que só consigo efectuar a transposta definindo um valor limite de entrada mas é pedido para usar o malloc.
Peço 5/10 minutos do vosso tempo pois fiz imensas pesquisas antes de fazer este post e não tive êxito ate agora.
Muito obrigado e cumprimentos
Cálculo da matriz transposta de uma matriz de qualquer dimensão.
Eis o código que tenho:
char FicheiroNome[80];
char FicheiroDrive;
char drive[80];
FILE * determinante;
int opcao,opcao1,p,LinhasTransposta,ColunasTransposta;
float DetMat_a[2][2],DetMat_c,a,b,c,d,det1,det2,test[4],TranMat_a[30][30],TranMat_b[30][30];
{
system("cls");
ImprimirCabecalho(h, FOREGROUND_GREEN | FOREGROUND_BLUE |FOREGROUND_INTENSITY | BACKGROUND_RED);
ImprimirTextoCor(h,0,"");
ResetCorTextConsola(h);
printf("A Matriz que pretende obter a transposta tem quantas linhas?\n");
scanf_s(" %d",&LinhasTransposta);
printf("\nA Matriz que pretende obter a transposta tem quantas Colunas?\n");
scanf_s(" %d",&ColunasTransposta);
for (int lin=0;lin<LinhasTransposta;lin++)
{
for(int col=0;col<ColunasTransposta;col++)
{
printf("\nQual o elemento [%d][%d] da matriz? ",lin+1,col+1);
scanf_s("%f",&TranMat_a[lin][col]);
}
}
for (int lin=0;lin<10;lin++)
{
for(int col=0;col<10;col++)
{
TranMat_b[lin][col]=TranMat_a[col][lin];
}
printf("\n");
}
system("cls");
printf("A Transposta da Matriz:\n");
for (int lin=0;lin<LinhasTransposta;lin++)
{
for(int col=0;col<ColunasTransposta;col++)
{
printf("%4.2f\t",TranMat_a[lin][col]);
}
printf("\n");
}
printf("eh:\n");
for (int lin=0;lin<ColunasTransposta;lin++)
{
for(int col=0;col<LinhasTransposta;col++)
{
printf("%4.2f\t",TranMat_b[lin][col]);
}
printf("\n");
}
printf("\n\n");
system("pause");
system("cls");
}
O problema é que só consigo efectuar a transposta definindo um valor limite de entrada mas é pedido para usar o malloc.
Peço 5/10 minutos do vosso tempo pois fiz imensas pesquisas antes de fazer este post e não tive êxito ate agora.
Muito obrigado e cumprimentos