Buscar

Estrutura de Matriz

Prévia do material em texto

Estrutura de Matriz 
Descrição 
Problema 1: Dada uma matriz quadrada, imprimir a soma dos elementos acima da diagonal 
principal. 
Entrada: Um número inteiro N indicando o tamanho da matriz. N linhas contendo os valores da 
matriz. 
Saída: Soma dos valores acima e inclusive a própria diagonal principal (diagonal superior). 
 
Exemplo 
Entrada 1: 
3 
0 1 0 
0 0 1 
1 0 0 
 
Saída 1: 
2 
 
Entrada 2 
4 
1 2 3 4 
2 3 4 5 
2 3 4 -1 
-1 2 -3 -4 
 
Saída 2: 
21 
 
 
#include <stdio.h> 
 
int main() 
{ 
 int i, j, linha, soma=0, matriz[100][100]; 
 
 scanf("%d", &linha); 
 for(i=0; i<linha; i++){ 
 for(j=0; j<linha; j++){ 
 scanf("%d", &matriz[i][j]); 
 } 
 } 
 for(i=0; i<linha; i++){ 
 for(j=i; j<linha; j++){ 
 soma += matriz[i][j]; 
 } 
 } 
 printf("%d", soma); 
} 
 
 
 
 
 
 
 
 
 
 
 
 
Descrição 
Problema 2:Na matemática, uma matriz quadrada binária é uma matriz de permutação se em 
cada linha e em cada coluna houver N-1 elementos iguais a 0 e um único elemento igual a 1. 
Assim, dada uma matriz, verificar se ela é ou não uma matriz de permutação. 
 
Entrada: Um número inteiro N indicando o tamanho da matriz. N linhas contendo os valores da 
matriz. 
Saída: Escrever "verdadeiro" se for uma matriz permutação ou "falso" caso contrário. 
 
Exemplo 
Entrada1 
3 
0 1 0 
0 0 1 
1 0 0 
Saída1 
 
Verdadeiro 
 
Entrada2 
2 
0 0 
1 0 
 
Saída 
Falso 
 
1. #include <stdio.h> 
2. 
3. int main() 
4. { 
5. int i, j, linha, soma=0, sum=0, cont, c1, matriz[100][100]; 
6. 
7. scanf("%d", &linha); 
8. for(i=0; i<linha; i++){ 
9. for(j=0; j<linha; j++){ 
10. scanf("%d", &matriz[i][j]); 
11. if(matriz[i][j] < 0 || matriz[i][j]> 1){ 
12. c1+=1; 
13. break; 
14. } 
15. } 
16. if(matriz[i][j] < 0 || matriz[i][j]> 1){ 
17. break;} 
18. } 
19. 
20. for(i=0; i<linha; i++){ 
21. for(j=0; j<linha; j++){ 
22. soma += matriz[i][j]; 
23. } 
24. if(soma > 1 || soma < 1){ 
25. cont ++; 
26. break; 
27. } 
28. soma=0; 
29. 
30. } 
31. 
32. for(j=0; j<linha; j++){ 
33. for(i=0; i<linha; i++){ 
34. sum += matriz[i][j]; 
35. } 
36. if(sum>1 || sum < 1){ 
37. cont++; 
38. break; 
39. } 
40. sum=0; 
41. 
42. } 
43. if(c1 >= 1){printf("falso");} 
44. else if(cont >= 1){printf("falso");} 
45. else{printf("verdadeiro");} 
46. 
47. 
48. } 
 
 
 
 
 
 
 
 
Problema 3: Os elementos aij de uma matriz representam a distância entre os pontos i e j de 
uma cidade. Dado um trajeto com k pontos, calcular a distância percorrida. 
Entrada: Uma linha contendo o tamanho da matriz. N linhas com os valores da matriz. Uma 
linha com o número de pontos do trajeto e uma linha com o pontos do trajeto. 
Saída: Distância percorrida no trajeto. 
 
Exemplo 
Entrada 
3 
4 6 2 
1 2 8 
2 5 9 
5 
0 2 1 2 1 
 
Saída 
20 
 
1. #include <stdio.h> 
2. 
3. int main() 
4. { 
5. int i, j, linha, matriz[100][100], dist, soma=0, vet[1000]; 
6. 
7. scanf("%d", &linha); 
8. for(i=0; i<linha; i++){ 
9. for(j=0; j<linha; j++){ 
10. scanf("%d", &matriz[i][j]); 
11. } 
12. } 
13. scanf("%d", &dist); 
14. for(i=0; i<dist; i++){ 
15. scanf("%d", &vet[i]); 
16. } 
17. 
18. for(i=0; i<dist-1; i++){ 
19. soma += matriz[vet[i]][vet[i+1]]; 
20. 
21. } 
22. printf("%d", soma); 
23. }

Continue navegando