Enviado em 28/05/2013 - 16:43h
é os seguinte, to começando a fazer uns execícios com funções, estou fazendo um programa para ler uma matriz nxn, onde o usuário vai informar o valor de 'n' desta matriz tenho que tirar a transposta, depois ler outra matriz de mesmo tamanho comparar para ver se ela é inversa da outra e imprimir tudo isso, já fiz a maior parte, e fui fazer o teste para ver se a transposta estava saindo correta, quando compilei as matrizes não estão aceitando o tamanho 'n'(obvio pq ele nao tem nenhum valor ainda) porém essas variáveis são globais se eu mudar para dentro da função as outras não vao ver, alguma dica? (lembrando que ainda não está tudo pronto)
segue o código:
segue o código:
#include <stdio.h>
int cont, cont2,n,matrizp[n][n], matrizt[n][n] ,matrizi[n][n] ,matrizin[n][n], matriza[n][n],matrizb[n][n];
void lermatrizprincipal()
{
int i,j;
printf("\nDigite o tamanho 'n' de uma matriz quadrada n x n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("\nDigite o número da posição %d,%d : ",i,j);
scanf("%d",&matrizp[i][j]);
}
}
}
void transportar()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
matrizt[i][j]=matrizp[j][i];
}
}
}
void lerinversa()
{
int i,j;
printf("\nInforme os números de uma matriz para \npodermos conferir se é inversa da primeira");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("\nDigite o numero da posição %d,%d",i,j);
scanf("%d",&matrizin[i][j]);
}
}
}
void gerar_m_identidade()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
{
matrizi[i][j]=1;
}
else
{
matrizi[i][j]=0;
}
}
}
}
void conferir_inversa()
{
int a,b,c;
cont=0;
for(a=0;a<n;a++)
{
for(b=0;b<n;b++)
{
for(c=0;c<n;c++)
{
matriza[a][b]+=matrizp[a][b]*matrizin[c][b];
matrizb[a][b]+=matrizin[a][b]*matrizp[c][b];
}
}
}
for(a=0;a<n;a++)
{
for(b=0;b<n;b++)
{
if(matriza[a][b]!=matrizb[a][b])
{
cont++;
}
}
}
if(cont>0)
{
for(a=0;a<n;a++)
{
for(b=0;b<n;b++)
{
if(matriza[a][b]!=matrizi[a][b])
{
cont2++;
}
}
}
}
}
void imprimirtransposta()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==3)
{
printf("\tT =");
}
printf("\t\t\t\n");
if(j==0)
{
printf("|");
}
printf("%d ",matrizt[i][j]);
if(j==n-1)
{
printf("|");
}
}
}
}
main()
{
lermatrizprincipal();
transportar();
imprimirtransposta();
}