Baixe o app para aproveitar ainda mais
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. }
Compartilhar