/*Faça um algoritmo em linguagem C com as seguintes funcionalidades: 
* 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; 
* 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; 
* Escreva ambas matrizes na tela, de uma forma legível; 
* Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últimos dois números da sua matricula da UNINTER; 
* Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimos dois números da sua matricula da UNINTER; 
*/
  
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

#define LINHAS 5
#define COLUNAS 5

int mat1  [LINHAS][COLUNAS] = {0};
int mat2  [LINHAS][COLUNAS] = {0};
int soma [LINHAS][COLUNAS] = {0};
int mulp [LINHAS][COLUNAS] = {0};
int i, j, ru, lin, col;

int main() {
	//faz a leitura da dimensao das matrizes
    printf("Digite a dimensao das matrizes: "); /*identificação do fator de multiplicação*/
	scanf("%d %d", &lin, &col);
	while ((lin > 5 || col > 5) && (lin < 0 || col < 0)) {
		printf("Dimensoes incorretas. Digite a dimensao das matrizes: ");
		scanf("%d %d", &lin, &col);
	}
	
	//faz a leitura dos valores da primeira matriz
    for(int i = 0; i<lin; i++) {
        for(int j = 0; j<col; j++) {
            printf("Digite o valor %d|%d =  ", i, j);
            scanf("%d", &mat1[i][j]);
        }
    }
    
    //faz a leitura dos valores da segunda matriz
    for(int i = 0; i<lin; i++) {
        for(int j = 0; j<col; j++) {
            printf("Digite o valor %d|%d =  ", i, j);
            scanf("%d", &mat2[i][j]);
        }
    }
    
    //Mostra os valores das duas matrizes
    printf("\n     1.a Matriz gerada\n");
    for(int i=0;i<lin;i++) {
        for(int j=0;j<col;j++) {
            printf("%d\t", mat1[i][j]); 
        }
        printf("\n");
    }

    printf("\n     2a. Matriz gerada\n");
    for(int i=0;i<lin;i++) {
        for(int j=0;j<col;j++) {
            printf("%d\t", mat2[i][j]); 
        }
        printf("\n");
    }
   
    //pega o dois ultimos digitos das matriculas
    char matricula[10], ult[3], pen[2]; 
    int tamMatricula;   
    printf("Digite a matricula: "); /*identificação do fator de multiplicação*/
    scanf("%s", matricula);
    tamMatricula = strlen(matricula);
    ult[0] = matricula[tamMatricula-1];
    ult[1] = '\0';
    pen[0] = matricula[tamMatricula-2];
    pen[1] = '\0';
    ru = atoi(strcat(ult, pen));
    printf("%d", ru);
    
    // cálculo da soma dos valores
    for(i=0;i<lin;i++)
        for(j=0;j<col;j++)
            mulp[i][j]=(mat1[i][j]+mat2[i][j])*ru;

    printf("\nMatriz resultante:\n");
    for(int i=0;i<lin;i++) {
        for(int j=0;j<col;j++) {
            printf("%d\t", mulp[i][j]); 
        }
        printf("\n");
    }
    
    system("pause");
    return 0;
}