#include void imprimir_matriz (int nl, int nc, double (*M)[nc]) { int l,c; for (l=0; l < nl; ++l) { for (c=0; c < nc; ++c) { printf("%g ", M[l][c]); } printf("\n"); } } int simetrica (int d, double (*M)[d]) { int l,c; for (l=0; l < d-1; ++l) { for (c=l+1; c < d; ++c) if (M[l][c] != M[c][l]) return 0; } return 1; } int main (void) { int m,n; do { printf("m (positivo): "); scanf("%d", &m); } while (m <= 0); do { printf("n (positivo): "); scanf("%d", &n); } while (n <= 0); double M[m][n]; int l,c; for (l=0; l < m; ++l) for (c=0; c < n; ++c) { printf("M[%d,%d]: ", l, c); scanf("%lg", &M[l][c]); } printf("\nA matriz digitada foi:\n"); imprimir_matriz(m,n,M); printf("\n"); if (m != n || !simetrica(m,M)) printf("A matriz não é simétrica.\n"); else printf("A matriz é simétrica.\n"); return 0; } // main