-
Notifications
You must be signed in to change notification settings - Fork 0
/
4sem.ex18.c
117 lines (95 loc) · 2.59 KB
/
4sem.ex18.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <stdio.h>
#include <stdlib.h>
/*
QUESTAO
Crie um programa que leia uma MATRIZ 4 x 4 e diga
se ela é uma matriz triangular superior,
triangular inferior, matriz diagonal ou se
não se enquadra. Para isso, as seguintes mensagens devem ser impressas:
+ Matriz Triangular Superior!!!
+ Matriz Triangular Inferior!!!
+ Matriz Diagonal!!!
+ Nao se Enquadra!!!
PS - Gostei desse exercicio, um bom desafio.
*/
/* PROTOTYPES */
int Preencher_Matriz ( int linha, int coluna, int m[linha][coluna] );
int Verificar_Matriz ( int linha, int coluna, int m[linha][coluna],
int tam, int sup[tam], int inf[tam] );
int main()
{
int linha = 4, coluna = 4;
int tam = 6;
int matriz[linha][coluna];
int vetor_superior[tam]; // armazenar valores acima diag princ
int vetor_inferior[tam]; // armazenar valores abaixo diag princ
Preencher_Matriz(linha,coluna,matriz);
Verificar_Matriz(linha,coluna,matriz,tam,
vetor_superior,vetor_inferior);
return 0;
}
int Preencher_Matriz ( int linha, int coluna, int m[linha][coluna] )
{
for (int i = 0; i < linha; i++ )
{
for ( int j = 0 ; j < coluna ; j++ )
{
scanf("%i",&m[i][j]);
}
}
return 0;
}
int Verificar_Matriz ( int linha, int coluna, int m[linha][coluna],
int tam, int sup[tam], int inf[tam] )
{
int k = 0,l = 0; // iterator inf e sup
for ( int i = 0; i < linha; i++ )
{
for ( int j = 0 ; j < coluna ; j++ )
{
if ( i > j ) // adiciona ao vetor diag sup
{
sup[l] = m[i][j];
l++;
}
else if ( j > i ) // adiciona ao vetor diag inf
{
inf[k] = m[i][j];
k++;
}
}
}
// verificar se eh triang sup, triang inf, matriz diag ou nenhum
int triang_sup = 1, triang_inf = 1;
for ( int i = 0 ; i < tam - 1 ; i++ ) // percorre vetor superior
{
if ( sup[i] != 0 )
{
triang_sup = 0;
}
}
for ( int j = 0 ; j < tam - 1 ; j++ ) // percorre vetor inferior
{
if ( inf[j] != 0 )
{
triang_inf = 0;
}
}
// imprimir resultado
if ( triang_sup == 1 && triang_inf == 0 )
{
printf("Matriz Triangular Superior!!! \n");
}
else if ( triang_sup == 0 && triang_inf == 1 )
{
printf("Matriz Triangular Inferior!!! \n");
}
else if ( triang_sup == 1 && triang_inf == 1 )
{
printf("Matriz Diagonal!!! \n");
}
else
{
printf("Nao se Enquadra!!! \n");
}
}