Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************************************
- ESCREVA UM ALGORITMO QUE LEIA UMA MATRIZ DE ENTRADAS INFORMADAS PELO
- USUÁRIO E DEFINA SE A MATRIZ É IDENTIDADE, NULA OU NENHUMA DAS OPÇÕES
- *******************************************************************************/
- #include <stdio.h>
- int main()
- {
- int n,aux,aux2;
- //definição da ordem da matriz
- printf("Insira uma ordem para a matriz: ");
- scanf("%i\n",&n);
- int mat[n][n];
- //definição das entradas da matriz
- for(int i=0;i<n;i++){
- for(int j=0;j<n;j++){
- scanf("%i",&mat[i][j]);
- }
- }
- //cálculo do tipo da matriz
- for(int i=0;i<n;i++){
- for(int j=0;j<n;j++){
- if(i==j){
- switch(mat[i][j]){
- case 0:
- aux=0;
- break;
- case 1:
- aux=1;
- break;
- }
- if(mat[i][j]!=0&&mat[i][j]!=1){
- aux=2;
- }
- }
- else{
- if(mat[i][j]==0){
- aux2=aux;
- }
- else{
- aux2=2;
- }
- }
- }
- }
- if(aux==aux2){
- aux=aux;
- }
- else{
- aux=2;
- }
- //detalhamento da matriz
- for(int i=0;i<n;i++){
- for(int j=0;j<n;j++){
- printf("%d ",mat[i][j]);
- }
- printf("\n");
- }
- switch(aux){
- case 0:
- printf("matriz zero");
- break;
- case 1:
- printf("matriz identidade");
- break;
- case 2:
- printf("nenhuma das opcoes");
- break;
- }
- return 0;
- }
Advertisement
Comments
-
- O cálculo é composto de dois testes, o primeiro testa a diagonal principal(m=n ou i=j). O segundo testa os demais valores(m=/=n ou i=/=j).
- Para a matriz ser nula, o primeiro e o segundo testes devem encontrar tudo zeros. Define-se uma variável auxiliar como '0' para saída posterior.
- No caso da matriz identidade, o primeiro teste deve encontrar tudo '1' mas o segundo teste, por sua vez, deve encontrar tudo '0'(igual o teste da matriz nula).
- Para o caso de não ser nenhuma das opções, atribui-se um condicional composto de 'e'(&&)(não é '0' e não é '1')(nem '0' nem '1').
Add Comment
Please, Sign In to add comment
Advertisement