fork download
  1. /*Faça um algoritmo em linguagem C com as seguintes funcionalidades:
  2. * Receba duas matrizes como dados e entrada. A dimensão das matrizes deve ser de, no máximo 5x5. Ambas matrizes de-vem ter as mesmas dimensões;
  3. * O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma checagem usando um laço de repetição que só permita o programa avançar caso ele digite dimensões corretas de no máximo 5;
  4. * Escreva ambas matrizes na tela, de uma forma legível;
  5. * Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últimos dois números da sua matricula da UNINTER;
  6. * Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimos dois números da sua matricula da UNINTER;
  7. */
  8.  
  9. #include<stdio.h>
  10. #include<stdlib.h>
  11. #include<math.h>
  12. #include<string.h>
  13.  
  14. #define LINHAS 5
  15. #define COLUNAS 5
  16.  
  17. int mat1 [LINHAS][COLUNAS] = {0};
  18. int mat2 [LINHAS][COLUNAS] = {0};
  19. int soma [LINHAS][COLUNAS] = {0};
  20. int mulp [LINHAS][COLUNAS] = {0};
  21. int i, j, ru, lin, col;
  22.  
  23. int main() {
  24. //faz a leitura da dimensao das matrizes
  25. printf("Digite a dimensao das matrizes: "); /*identificação do fator de multiplicação*/
  26. scanf("%d %d", &lin, &col);
  27. while ((lin > 5 || col > 5) && (lin < 0 || col < 0)) {
  28. printf("Dimensoes incorretas. Digite a dimensao das matrizes: ");
  29. scanf("%d %d", &lin, &col);
  30. }
  31.  
  32. //faz a leitura dos valores da primeira matriz
  33. for(int i = 0; i<lin; i++) {
  34. for(int j = 0; j<col; j++) {
  35. printf("Digite o valor %d|%d = ", i, j);
  36. scanf("%d", &mat1[i][j]);
  37. }
  38. }
  39.  
  40. //faz a leitura dos valores da segunda matriz
  41. for(int i = 0; i<lin; i++) {
  42. for(int j = 0; j<col; j++) {
  43. printf("Digite o valor %d|%d = ", i, j);
  44. scanf("%d", &mat2[i][j]);
  45. }
  46. }
  47.  
  48. //Mostra os valores das duas matrizes
  49. printf("\n 1.a Matriz gerada\n");
  50. for(int i=0;i<lin;i++) {
  51. for(int j=0;j<col;j++) {
  52. printf("%d\t", mat1[i][j]);
  53. }
  54. printf("\n");
  55. }
  56.  
  57. printf("\n 2a. Matriz gerada\n");
  58. for(int i=0;i<lin;i++) {
  59. for(int j=0;j<col;j++) {
  60. printf("%d\t", mat2[i][j]);
  61. }
  62. printf("\n");
  63. }
  64.  
  65. //pega o dois ultimos digitos das matriculas
  66. char matricula[10], ult[3], pen[2];
  67. int tamMatricula;
  68. printf("Digite a matricula: "); /*identificação do fator de multiplicação*/
  69. scanf("%s", matricula);
  70. tamMatricula = strlen(matricula);
  71. ult[0] = matricula[tamMatricula-1];
  72. ult[1] = '\0';
  73. pen[0] = matricula[tamMatricula-2];
  74. pen[1] = '\0';
  75. ru = atoi(strcat(ult, pen));
  76. printf("%d", ru);
  77.  
  78. // cálculo da soma dos valores
  79. for(i=0;i<lin;i++)
  80. for(j=0;j<col;j++)
  81. mulp[i][j]=(mat1[i][j]+mat2[i][j])*ru;
  82.  
  83. printf("\nMatriz resultante:\n");
  84. for(int i=0;i<lin;i++) {
  85. for(int j=0;j<col;j++) {
  86. printf("%d\t", mulp[i][j]);
  87. }
  88. printf("\n");
  89. }
  90.  
  91. system("pause");
  92. return 0;
  93. }
Success #stdin #stdout #stderr 0s 9424KB
stdin
3 3
1 2 3 4 5 6 7 8 9
3 3 3 4 4 4 5 5 5
32342458
stdout
Digite a dimensao das matrizes: Digite o valor 0|0 =  Digite o valor 0|1 =  Digite o valor 0|2 =  Digite o valor 1|0 =  Digite o valor 1|1 =  Digite o valor 1|2 =  Digite o valor 2|0 =  Digite o valor 2|1 =  Digite o valor 2|2 =  Digite o valor 0|0 =  Digite o valor 0|1 =  Digite o valor 0|2 =  Digite o valor 1|0 =  Digite o valor 1|1 =  Digite o valor 1|2 =  Digite o valor 2|0 =  Digite o valor 2|1 =  Digite o valor 2|2 =  
     1.a Matriz gerada
1	2	3	
4	5	6	
7	8	9	

     2a. Matriz gerada
3	3	3	
4	4	4	
5	5	5	
Digite a matricula: 85
Matriz resultante:
340	425	510	
680	765	850	
1020	1105	1190	
stderr
sh: 1: pause: not found