int main(int argc, char **argv) { pthread_t thread[NUM_THREADS]; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); int *AA, *AB, *AC, columns, lines, k, i, j, t; //ponteiro AA AB por que matriz é um endereço de memória char *fileName1, *fileName2; int rc; void *status; columns = atoi(argv[1]); lines = atoi(argv[2]); fileName1 = argv[3]; fileName2 = argv[4]; AA = (int *) malloc (sizeof(int) * lines * columns); AA = leMatriz(columns,lines,fileName1); AB = (int *) malloc (sizeof(int) * lines * columns); AB = leMatriz(columns,lines,fileName2); AC = (int *) malloc (sizeof(int) * lines * columns); for (t=0; t<NUM_THREADS; t++) { printf("criando thread %ld\n", t); thread_data_array[t].id = t; thread_data_array[t].AA = AA; thread_data_array[t].AB = AB; thread_data_array[t].AC = AC; thread_data_array[t].columns = columns; thread_data_array[t].lines = lines; rc = pthread_create(&thread[t], &attr, multiplica, (void *) &thread_data_array[t]); if (rc){ printf("Error ao criar thread e %d\n", rc); exit(-1); } } pthread_attr_destroy(&attr); for (t=0; t<NUM_THREADS; t++) { rc = pthread_join(thread[t], &status); if (rc){ printf("Erro join e %d\n", rc); exit(-1); } printf("Completo o Join com thread %d com status %ld\n",t,(long)status); } printf("Main: program completed. Exiting.\n"); /* for (i=0; i<columns; i++) for (j=0; j<lines; j++) printf("matriz %d\n", AC[i*columns + j]);*/ pthread_exit(NULL); return 0; }
int main() { int M, N, Test=1; int Matriz[MAX][MAX]; scanf("%d %d", &M, &N); while(M>0 || N>0) { int X=0, Y=0; if(Test==1) printf("Teste %d\n",Test++); else printf("\nTeste %d\n",Test++); leMatriz(Matriz, M, N); leDesloc(&X, &Y); Deslocar(Matriz, M, N, X, Y); scanf("%d %d", &M, &N); } return 0; }
Instancia::Instancia(char *arquivo) { // Preparação FILE *fd = fopen(arquivo,"r"); if(!fd) { printf("File %s not found.\n",arquivo); qtd_maquinas = qtd_tarefas = 0; } int lixo; int rc = 0; rc = fscanf(fd,"%d%d%d",&qtd_tarefas,&qtd_maquinas,&lixo); if(rc == 0) { printf("Erro de leitura"); exit(0); } if(lixo != 1) { printf("A instancia %s tem o terceiro parametro diferente de 1.\n",arquivo); exit(0); } rc = fscanf(fd,"%d",&lixo); if(rc == 0) { printf("Erro de leitura"); exit(0); } // Leitura propriamente dita. lePij(fd); leMatriz(fd,(char*)"RSSDMIN"); leMatriz(fd,(char*)"RSSDMAX"); leMatriz(fd,(char*)"SSDMIN"); leMatriz(fd,(char*)"SSDMAX"); fclose(fd); }
// Inicializa o grafo void inicializaGrafo(FILE * arquivo, Grafo * G){ int num; leMatriz(arquivo, &(G->matrizAdj)); // Lê matrizes do arquivo e as insere na variável de matrizAjd G->N = G->matrizAdj.col; // Atribui a quantidade N de cidades no grafo G->Vol = (int *) malloc (G->N * sizeof(int)); for (int i = 0; i < G->N; i++){ fscanf(arquivo,"%d ",&num); G->Vol[i] = num; } };
int main(int argc, char *argv[]) { int dimensao, primeira, segunda; int *n; int **m; char *nome; nome = readLine(); m = leMatriz(nome, n); primeira = soma1(m, *n); segunda = soma2(m, *n); max(primeira, segunda); liberaMatriz(m, *n); free(nome); return 0; }
int main(){ int m[TAMANHO][TAMANHO],isRepetido=0,somas[TAMANHO+1][2]; //somas: [*][0] = linhas | [*][1] = colunas //A ultima linha e' utilizada para guardar as somas das diagonais; leMatriz(m); system("cls"); inicializaMatriz(somas); printf(" M:\n\n "); int i,j; for(i=0;i<TAMANHO;i++){ for(j=0;j<TAMANHO;j++){ printf("%06d ",m[i][j]); somas[i][0] = somas[i][0]+m[i][j]; //Faz a soma das linhas somas[j][1] = somas[j][1]+m[i][j]; //Faz a soma das colunas if(i==j){ //Diagonal Principal somas[TAMANHO][0]=somas[TAMANHO][0]+m[i][j]; } if(i==((TAMANHO-1)-j)){ //Diagonal Secundaria somas[TAMANHO][1]=somas[TAMANHO][1]+m[i][j]; } } printf("\n "); } int isMagico = verificaResultados(somas,m); if (isMagico==1){ printf("\n\nA matriz digitada e' um quadrado magico!\n\n"); }else{ printf("\n\nA matriz digitada nao e' um quadrado magico!\n\n"); } system("pause"); }