int main(int argc, char **argv) { // Verificando quantidade de arquivos na chamada de execução no terminal. if (argc != 3) { printf("ERROR!\nQuantidade de arquivos diferente do esperado.\n"); } else { Mat *matrizA = NULL; Mat *matrizB = NULL; Mat *matrizC = NULL; matrizA = busca_arquivo(matrizA, argv[1]); matrizB = busca_arquivo(matrizB, argv[2]); matrizC = soma_matriz(matrizA, matrizB); desaloca_matriz(matrizA); desaloca_matriz(matrizB); imprime_matriz(matrizC); desaloca_matriz(matrizC); } return 0; }
int main(int argc, char * argv[]){ int ** matriz; int n, m, i, j, k; if (argc < 2) { printf("Usage: %s [N] [M] [num1] [num2] ... [num(N*M)]\n", \ argv[0]); return(EXIT_SUCCESS); } n = atoi(argv[1]); m = atoi(argv[2]); if (argc != (n*m + 3)) { printf("Usage: %s [N] [M] [num1] [num2] ... [num(N*M)]\n", \ argv[0]); return(EXIT_SUCCESS); } matriz = (int ** )malloc(sizeof(int *) * n + ((sizeof(int) * m)*n)); int *data = (int*) (matriz + n); printf("Matriz lida: \n"); for (i=0; i<n; i++){ matriz[i] = data + i * n; } k = 0; for (i=0; i<m; i++){ for (j=0; j<n; j++){ matriz[i][j]= atoi(argv[k+3]); k++; } } putchar('\n'); for (i=0; i<m; i++){ for (j=0; j<n; j++){ printf("%d ", matriz[i][j]); } putchar('\n'); } imprime_matriz(&matriz[0][0], n*m, n); putchar('\n'); printf("Soma da matriz: %d \n", soma_matriz(*matriz, n*m)); putchar('\n'); printf("Maior da matriz: %d \n", maior_matriz(*matriz, n*m)); putchar('\n'); printf("Menor da matriz: %d \n", menor_matriz(*matriz, n*m)); putchar('\n'); return 0; }
int eh_sudoku(int sud[9][9]) { int i, j, x, y, mini[3][3]; if (!latino(9, sud)) return 0; for (x = 0; x <= 6; x += 3) for (y = 0; y <= 6; y += 3) { for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) mini[i][j] = sud[i+x][j+y]; if (soma_matriz(3, mini) != 45) return 0; } return 1; }
int soma_matriz(int * mat, int n){ if (n < 0) return 0; return *(mat+n) + soma_matriz(mat, --n); }