int main() { // cria matriz com N vértices int grafo[N][N]; int visitados[N]; int trajecto[N]; // inicializa matriz inicializaMatriz(grafo); criaAresta(grafo, 0, 1, 10); criaAresta(grafo, 1, 2, 5); criaAresta(grafo, 2, 0, 3); criaAresta(grafo, 0, 3, 7); criaAresta(grafo, 2, 3, 20); criaAresta(grafo, 3, 4, 12); criaAresta(grafo, 1, 5, 3); criaAresta(grafo, 3, 5, 0); criaAresta(grafo, 5, 4, 1); criaAresta(grafo, 3, 1, 5); criaAresta(grafo, 1, 0, 6); //imprime(grafo); inicializaArray(visitados); visitaProfundidade(grafo, visitados, 0); printf("\n"); inicializaArray(visitados); if (haCaminho(grafo, 0, 4, visitados)) printf("Ha caminho de %d para %d\n", 0, 4); else printf("Nao ha caminho de %d para %d\n", 0, 4); caminhos(grafo, 0, 5, trajecto, 0, 0); }
int main(int argc, char **argv) { int numVert = atoi(argv[1]), i; matriz = (int **) malloc(sizeof(int *) * numVert); for(i = 0; i < numVert; i++) { matriz[i] = (int *) malloc(sizeof(int *) * numVert); } inicializaMatriz(numVert); imprimeMatrizArquivo(argv[1]); }
int main(int argc, char *argv[]){ // Inicializa matriz e a posição central do cursor textbackground(CORFUNDO); inicializaMatriz(m); posLin = (int)TAM_MATRIZ/2; posCol = (int)TAM_MATRIZ/2; int tecla; // Inicia a lógica do jogo while(1){ imprimeMatriz(m); destaca(posLin,posCol); imprimeStatus(); if(pontuacao == 1) imprimeFimdejogo; if(fimDeJogo) imprimeFimdejogo(); tecla = getch(); if(tecla == DIRECIONAL){ switch(getch()){ case CIMA: moveCursor(CIMA); break; case DIREITA: moveCursor(DIREITA); break; case BAIXO: moveCursor(BAIXO); break; case ESQUERDA: moveCursor(ESQUERDA); break; } } else { switch(tecla){ case ENTER: verifica(); break; case ESPACO: sugestao(); break; case ESC: return; } } gotoxy(TAM_MATRIZ*2+1,TAM_MATRIZ); } 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"); }
int main(){ srand((unsigned int)time(NULL)); punto * puntos = (punto *)malloc(N*sizeof(punto)); punto * distancias = (punto *)malloc(N*sizeof(punto)); punto c1; punto c2; inicializaMatriz(puntos); c1.x = ((double)rand()/(double)(RAND_MAX)); c1.y = ((double)rand()/(double)(RAND_MAX)); c2.x = ((double)rand()/(double)(RAND_MAX)); c2.y = ((double)rand()/(double)(RAND_MAX)); double sumC1x=-1; double sumC1y=-1; double sumC2x=-1; double sumC2y=-1; double nC1 = 0.0; double nC2 = 0.0; int acabo = 0; printf("\n"); int i = 0; while(acabo==0){ //for(;i<260;i++){ int i = 0; sumC1x = 0; sumC1y = 0; sumC2x = 0; sumC2y = 0; nC1 = 0; nC2 = 0; #pragma omp parallel for private(i) for(i=0;i<N;i++){ double distanciaC1 = dist((puntos+i)->x,(puntos+i)->y,c1.x,c1.y); double distanciaC2 = dist((puntos+i)->x,(puntos+i)->y,c2.x,c2.y); #pragma omp critical { if(distanciaC1 < distanciaC2){ sumC1x += ((puntos+i)->x); sumC1y += ((puntos+i)->y); nC1++; }else{ sumC2x += ((puntos+i)->x); sumC2y += ((puntos+i)->y); nC2++; } } } sumC1x /= nC1; sumC1y /= nC1; sumC2x /= nC2; sumC2y /= nC2; if(dist(sumC1x,sumC1y,c1.x,c1.y) < E || dist(sumC2x,sumC2y,c2.x,c2.y) < E){ acabo = 1; } //printf("C1(%f,%f)\n", c1.x, c1.y); //printf("C2(%f,%f)\n", c2.x, c2.y); //printf("==============================\n"); c1.x = sumC1x; c1.y = sumC1y; c2.x = sumC2x; c2.y = sumC2y; } printf("=========================\n"); printf("= C1(%f,%f) =\n", c1.x, c1.y); printf("= C2(%f,%f) =\n", c2.x, c2.y); printf("=========================\n"); free(puntos); free(distancias); return 0; }