/* Dado um inteiro 0 < n < 100 e uma matriz real A_{n x n}, verifique se a matriz A tem pelo menos uma linha, coluna ou diagonal composta apenas por zeros. */ #include #define MAX 100 #define verdadeiro 1 #define falso 0 int main() { int n, lin, col, sozero; double A[MAX][MAX]; printf("Digite 0 < n < 100: "); scanf("%d", &n); printf("Digite a matriz: \n"); for (lin = 0; lin < n; lin++){ for (col = 0; col < n; col++){ scanf("%lf", &A[lin][col]); } } /* verifica se tem linha nula */ for (lin = 0; lin < n; lin++){ sozero = verdadeiro; for (col = 0; col < n && sozero; col++){ if (A[lin][col] != 0.0){ sozero = falso; } } if (sozero == verdadeiro){ printf("A linha %d é nula.\n", lin); } } /* verifica para as colunas */ for (col = 0; col < n; col++){ sozero = verdadeiro; for (lin = 0; lin < n && sozero; lin++){ if (A[lin][col] != 0.0){ sozero = falso; } } if (sozero == verdadeiro){ printf("A coluna %d só tem zeros.\n", col); } } /* diagonal principal: [0][0]; [1][1]; [2][2]; ... */ sozero = verdadeiro; for (lin = 0; lin < n; lin++){ if (A[lin][lin] != 0.0){ sozero = falso; } } if (sozero == verdadeiro){ printf("A diagonal principal é nula.\n"); } /* diagonal secundária: [0][n-1]; [1][n-2]; [2][n-3]; ... [lin][n-lin-1] */ sozero = verdadeiro; for (lin = 0; lin < n; lin++){ if (A[lin][n-lin-1] != 0.0){ sozero = falso; } } if (sozero == verdadeiro){ printf("A diagonal secundária é nula. \n"); } return 0; }