Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct datos {
- int dist[22];
- int visitado;
- } estrucDatos;
- estrucDatos p[22];
- int buscarMenorDistancia(int desde, estrucDatos *p) {
- int i, ciudad, menor = 10000;
- for (i=0;i<=22;i++) {
- if (p[i].visitado == 0 && p[desde].dist[i] != 0 && p[desde].dist[i] < menor) {
- menor = p[desde].dist[i];
- ciudad = i;
- }
- }
- printf("CIUDAD: %d\n",ciudad);
- return ciudad;
- }
- int main() {
- int i,j;
- int cInicial, cActual;
- int recorrido[22];
- int distancia[22][22];
- // BS. AS.
- distancia[0][0]=0;
- distancia[0][1]=694;
- distancia[0][2]=1281;
- distancia[0][3]=1043;
- distancia[0][4]=1597;
- distancia[0][5]=1623;
- distancia[0][6]=464;
- distancia[0][7]=1149;
- distancia[0][8]=1107;
- distancia[0][9]=1023;
- distancia[0][10]=1178;
- distancia[0][11]=1220;
- distancia[0][12]=1465;
- distancia[0][13]=789;
- distancia[0][14]=993;
- distancia[0][15]=1123;
- distancia[0][16]=493;
- distancia[0][17]=1003;
- distancia[0][18]=963;
- distancia[0][19]=607;
- distancia[0][20]=1168;
- distancia[0][21]=2604;
- distancia[0][22]=3048;
- // CORDOBA
- distancia[1][0]=distancia[0][1];
- distancia[1][1]=0;
- distancia[1][2]=587;
- distancia[1][3]=682;
- distancia[1][4]=903;
- distancia[1][5]=929;
- distancia[1][6]=346;
- distancia[1][7]=455;
- distancia[1][8]=583;
- distancia[1][9]=904;
- distancia[1][10]=484;
- distancia[1][11]=1144;
- distancia[1][12]=1450;
- distancia[1][13]=428;
- distancia[1][14]=1223;
- distancia[1][15]=432;
- distancia[1][16]=375;
- distancia[1][17]=884;
- distancia[1][18]=1203;
- distancia[1][19]=608;
- distancia[1][20]=1169;
- distancia[1][21]=2562;
- distancia[1][22]=3006;
- // SAN MIGUEL DE TUCUMAN
- distancia[2][0]=distancia[0][2];
- distancia[2][1]=distancia[1][2];
- distancia[2][2]=0;
- distancia[2][3]=1049;
- distancia[2][4]=316;
- distancia[2][5]=342;
- distancia[2][6]=782;
- distancia[2][7]=378;
- distancia[2][8]=883;
- distancia[2][9]=783;
- distancia[2][10]=226;
- distancia[2][11]=1731;
- distancia[2][12]=2037;
- distancia[2][13]=1015;
- distancia[2][14]=1103;
- distancia[2][15]=155;
- distancia[2][16]=811;
- distancia[2][17]=775;
- distancia[2][18]=1790;
- distancia[2][19]=1195;
- distancia[2][20]=929;
- distancia[2][21]=3149;
- distancia[2][22]=3594;
- // MENDOZA
- distancia[3][0]=distancia[0][3];
- distancia[3][1]=distancia[1][3];
- distancia[3][2]=distancia[2][3];
- distancia[3][3]=0;
- distancia[3][4]=1364;
- distancia[3][5]=1390;
- distancia[3][6]=905;
- distancia[3][7]=671;
- distancia[3][8]=169;
- distancia[3][9]=1464;
- distancia[3][10]=823;
- distancia[3][11]=826;
- distancia[3][12]=1598;
- distancia[3][13]=253;
- distancia[3][14]=1783;
- distancia[3][15]=1114;
- distancia[3][16]=934;
- distancia[3][17]=1144;
- distancia[3][18]=1351;
- distancia[3][19]=765;
- distancia[3][20]=1609;
- distancia[3][21]=2731;
- distancia[3][22]=3175;
- // SALTA
- distancia[4][0]=distancia[0][4];
- distancia[4][1]=distancia[1][4];
- distancia[4][2]=distancia[2][4];
- distancia[4][3]=distancia[3][4];
- distancia[4][4]=0;
- distancia[4][5]=115;
- distancia[4][6]=1101;
- distancia[4][7]=694;
- distancia[4][8]=1199;
- distancia[4][9]=848;
- distancia[4][10]=541;
- distancia[4][11]=2047;
- distancia[4][12]=2353;
- distancia[4][13]=1331;
- distancia[4][14]=1167;
- distancia[4][15]=471;
- distancia[4][16]=1130;
- distancia[4][17]=840;
- distancia[4][18]=2106;
- distancia[4][19]=1511;
- distancia[4][20]=997;
- distancia[4][21]=3465;
- distancia[4][22]=3908;
- // JUJUY
- distancia[5][0]=distancia[0][5];
- distancia[5][1]=distancia[1][5];
- distancia[5][2]=distancia[2][5];
- distancia[5][3]=distancia[3][5];
- distancia[5][4]=distancia[4][5];
- distancia[5][5]=0;
- distancia[5][6]=1124;
- distancia[5][7]=720;
- distancia[5][8]=1225;
- distancia[5][9]=873;
- distancia[5][10]=568;
- distancia[5][11]=2073;
- distancia[5][12]=2379;
- distancia[5][13]=1357;
- distancia[5][14]=1192;
- distancia[5][15]=497;
- distancia[5][16]=1153;
- distancia[5][17]=865;
- distancia[5][18]=2132;
- distancia[5][19]=1537;
- distancia[5][20]=1032;
- distancia[5][21]=3491;
- distancia[5][22]=3935;
- // SANTA FE
- distancia[6][0]=distancia[0][6];
- distancia[6][1]=distancia[1][6];
- distancia[6][2]=distancia[2][6];
- distancia[6][3]=distancia[3][6];
- distancia[6][4]=distancia[4][6];
- distancia[6][5]=distancia[5][6];
- distancia[6][6]=0;
- distancia[6][7]=800;
- distancia[6][8]=929;
- distancia[6][9]=559;
- distancia[6][10]=829;
- distancia[6][11]=1480;
- distancia[6][12]=1730;
- distancia[6][13]=652;
- distancia[6][14]=878;
- distancia[6][15]=632;
- distancia[6][16]=29;
- distancia[6][17]=539;
- distancia[6][18]=1223;
- distancia[6][19]=783;
- distancia[6][20]=704;
- distancia[6][21]=2865;
- distancia[6][22]=3308;
- // LA RIOJA
- distancia[7][0]=distancia[0][7];
- distancia[7][1]=distancia[1][7];
- distancia[7][2]=distancia[2][7];
- distancia[7][3]=distancia[3][7];
- distancia[7][4]=distancia[4][7];
- distancia[7][5]=distancia[5][7];
- distancia[7][6]=distancia[6][7];
- distancia[7][7]=0;
- distancia[7][8]=449;
- distancia[7][9]=1153;
- distancia[7][10]=152;
- distancia[7][11]=1497;
- distancia[7][12]=1905;
- distancia[7][13]=529;
- distancia[7][14]=1472;
- distancia[7][15]=518;
- distancia[7][16]=830;
- distancia[7][17]=1140;
- distancia[7][18]=1658;
- distancia[7][19]=1063;
- distancia[7][20]=1297;
- distancia[7][21]=3017;
- distancia[7][22]=3460;
- // SAN JUAN
- distancia[8][0]=distancia[0][8];
- distancia[8][1]=distancia[1][8];
- distancia[8][2]=distancia[2][8];
- distancia[8][3]=distancia[3][8];
- distancia[8][4]=distancia[4][8];
- distancia[8][5]=distancia[5][8];
- distancia[8][6]=distancia[6][8];
- distancia[8][7]=distancia[7][8];
- distancia[8][8]=0;
- distancia[8][9]=1488;
- distancia[8][10]=601;
- distancia[8][11]=995;
- distancia[8][12]=1766;
- distancia[8][13]=322;
- distancia[8][14]=1807;
- distancia[8][15]=962;
- distancia[8][16]=957;
- distancia[8][17]=1467;
- distancia[8][18]=1519;
- distancia[8][19]=820;
- distancia[8][20]=1752;
- distancia[8][21]=2900;
- distancia[8][22]=3343;
- // CORRIENTES
- distancia[9][0]=distancia[0][9];
- distancia[9][1]=distancia[1][9];
- distancia[9][2]=distancia[2][9];
- distancia[9][3]=distancia[3][9];
- distancia[9][4]=distancia[4][9];
- distancia[9][5]=distancia[5][9];
- distancia[9][6]=distancia[6][9];
- distancia[9][7]=distancia[7][9];
- distancia[9][8]=distancia[8][9];
- distancia[9][9]=0;
- distancia[9][10]=1144;
- distancia[9][11]=2039;
- distancia[9][12]=2289;
- distancia[9][13]=1210;
- distancia[9][14]=319;
- distancia[9][15]=639;
- distancia[9][16]=595;
- distancia[9][17]=20;
- distancia[9][18]=1781;
- distancia[9][19]=1342;
- distancia[9][20]=189;
- distancia[9][21]=3424;
- distancia[9][22]=3866;
- // CATAMARCA
- distancia[10][0]=distancia[0][10];
- distancia[10][1]=distancia[1][10];
- distancia[10][2]=distancia[2][10];
- distancia[10][3]=distancia[3][10];
- distancia[10][4]=distancia[4][10];
- distancia[10][5]=distancia[5][10];
- distancia[10][6]=distancia[6][10];
- distancia[10][7]=distancia[7][10];
- distancia[10][8]=distancia[8][10];
- distancia[10][9]=distancia[9][10];
- distancia[10][10]=0;
- distancia[10][11]=1628;
- distancia[10][12]=1934;
- distancia[10][13]=912;
- distancia[10][14]=1463;
- distancia[10][15]=504;
- distancia[10][16]=859;
- distancia[10][17]=1131;
- distancia[10][18]=1687;
- distancia[10][19]=1092;
- distancia[10][20]=1288;
- distancia[10][21]=3046;
- distancia[10][22]=3490;
- // NEUQUEN
- distancia[11][0]=distancia[0][11];
- distancia[11][1]=distancia[1][11];
- distancia[11][2]=distancia[2][11];
- distancia[11][3]=distancia[3][11];
- distancia[11][4]=distancia[4][11];
- distancia[11][5]=distancia[5][11];
- distancia[11][6]=distancia[6][11];
- distancia[11][7]=distancia[7][11];
- distancia[11][8]=distancia[8][11];
- distancia[11][9]=distancia[9][11];
- distancia[11][10]=distancia[10][11];
- distancia[11][11]=0;
- distancia[11][12]=818;
- distancia[11][13]=997;
- distancia[11][14]=2213;
- distancia[11][15]=1576;
- distancia[11][16]=1508;
- distancia[11][17]=2018;
- distancia[11][18]=556;
- distancia[11][19]=536;
- distancia[11][20]=2184;
- distancia[11][21]=1951;
- distancia[11][22]=2395;
- // RAWSON
- distancia[12][0]=distancia[0][12];
- distancia[12][1]=distancia[1][12];
- distancia[12][2]=distancia[2][12];
- distancia[12][3]=distancia[3][12];
- distancia[12][4]=distancia[4][12];
- distancia[12][5]=distancia[5][12];
- distancia[12][6]=distancia[6][12];
- distancia[12][7]=distancia[7][12];
- distancia[12][8]=distancia[8][12];
- distancia[12][9]=distancia[9][12];
- distancia[12][10]=distancia[10][12];
- distancia[12][11]=distancia[11][12];
- distancia[12][12]=0;
- distancia[12][13]=1344;
- distancia[12][14]=2458;
- distancia[12][15]=1882;
- distancia[12][16]=1759;
- distancia[12][17]=2269;
- distancia[12][18]=508;
- distancia[12][19]=842;
- distancia[12][20]=2434;
- distancia[12][21]=1139;
- distancia[12][22]=1583;
- // SAN LUIS
- distancia[13][0]=distancia[0][13];
- distancia[13][1]=distancia[1][13];
- distancia[13][2]=distancia[2][13];
- distancia[13][3]=distancia[3][13];
- distancia[13][4]=distancia[4][13];
- distancia[13][5]=distancia[5][13];
- distancia[13][6]=distancia[6][13];
- distancia[13][7]=distancia[7][13];
- distancia[13][8]=distancia[8][13];
- distancia[13][9]=distancia[9][13];
- distancia[13][10]=distancia[10][13];
- distancia[13][11]=distancia[11][13];
- distancia[13][12]=distancia[12][13];
- distancia[13][13]=0;
- distancia[13][14]=1530;
- distancia[13][15]=860;
- distancia[13][16]=680;
- distancia[13][17]=1190;
- distancia[13][18]=1096;
- distancia[13][19]=503;
- distancia[13][20]=1356;
- distancia[13][21]=2478;
- distancia[13][22]=2921;
- // POSADAS
- distancia[14][0]=distancia[0][14];
- distancia[14][1]=distancia[1][14];
- distancia[14][2]=distancia[2][14];
- distancia[14][3]=distancia[3][14];
- distancia[14][4]=distancia[4][14];
- distancia[14][5]=distancia[5][14];
- distancia[14][6]=distancia[6][14];
- distancia[14][7]=distancia[7][14];
- distancia[14][8]=distancia[8][14];
- distancia[14][9]=distancia[9][14];
- distancia[14][10]=distancia[10][14];
- distancia[14][11]=distancia[11][14];
- distancia[14][12]=distancia[12][14];
- distancia[14][13]=distancia[13][14];
- distancia[14][14]=0;
- distancia[14][15]=959;
- distancia[14][16]=903;
- distancia[14][17]=339;
- distancia[14][18]=1956;
- distancia[14][19]=1510;
- distancia[14][20]=509;
- distancia[14][21]=3597;
- distancia[14][22]=4041;
- // S. D. ESTERO
- distancia[15][0]=distancia[0][15];
- distancia[15][1]=distancia[1][15];
- distancia[15][2]=distancia[2][15];
- distancia[15][3]=distancia[3][15];
- distancia[15][4]=distancia[4][15];
- distancia[15][5]=distancia[5][15];
- distancia[15][6]=distancia[6][15];
- distancia[15][7]=distancia[7][15];
- distancia[15][8]=distancia[8][15];
- distancia[15][9]=distancia[9][15];
- distancia[15][10]=distancia[10][15];
- distancia[15][11]=distancia[11][15];
- distancia[15][12]=distancia[12][15];
- distancia[15][13]=distancia[13][15];
- distancia[15][14]=distancia[14][15];
- distancia[15][15]=0;
- distancia[15][16]=661;
- distancia[15][17]=626;
- distancia[15][18]=1635;
- distancia[15][19]=1040;
- distancia[15][20]=784;
- distancia[15][21]=2994;
- distancia[15][22]=3438;
- // PARANA
- distancia[16][0]=distancia[0][16];
- distancia[16][1]=distancia[1][16];
- distancia[16][2]=distancia[2][16];
- distancia[16][3]=distancia[3][16];
- distancia[16][4]=distancia[4][16];
- distancia[16][5]=distancia[5][16];
- distancia[16][6]=distancia[6][16];
- distancia[16][7]=distancia[7][16];
- distancia[16][8]=distancia[8][16];
- distancia[16][9]=distancia[9][16];
- distancia[16][10]=distancia[10][16];
- distancia[16][11]=distancia[11][16];
- distancia[16][12]=distancia[12][16];
- distancia[16][13]=distancia[13][16];
- distancia[16][14]=distancia[14][16];
- distancia[16][15]=distancia[15][16];
- distancia[16][16]=0;
- distancia[16][17]=567;
- distancia[16][18]=1251;
- distancia[16][19]=812;
- distancia[16][20]=732;
- distancia[16][21]=2894;
- distancia[16][22]=3336;
- // RESISTENCIA
- distancia[17][0]=distancia[0][17];
- distancia[17][1]=distancia[1][17];
- distancia[17][2]=distancia[2][17];
- distancia[17][3]=distancia[3][17];
- distancia[17][4]=distancia[4][17];
- distancia[17][5]=distancia[5][17];
- distancia[17][6]=distancia[6][17];
- distancia[17][7]=distancia[7][17];
- distancia[17][8]=distancia[8][17];
- distancia[17][9]=distancia[9][17];
- distancia[17][10]=distancia[10][17];
- distancia[17][11]=distancia[11][17];
- distancia[17][12]=distancia[12][17];
- distancia[17][13]=distancia[13][17];
- distancia[17][14]=distancia[14][17];
- distancia[17][15]=distancia[15][17];
- distancia[17][16]=distancia[16][17];
- distancia[17][17]=0;
- distancia[17][18]=1761;
- distancia[17][19]=1322;
- distancia[17][20]=166;
- distancia[17][21]=3404;
- distancia[17][22]=3846;
- // VIEDMA
- distancia[18][0]=distancia[0][18];
- distancia[18][1]=distancia[1][18];
- distancia[18][2]=distancia[2][18];
- distancia[18][3]=distancia[3][18];
- distancia[18][4]=distancia[4][18];
- distancia[18][5]=distancia[5][18];
- distancia[18][6]=distancia[6][18];
- distancia[18][7]=distancia[7][18];
- distancia[18][8]=distancia[8][18];
- distancia[18][9]=distancia[9][18];
- distancia[18][10]=distancia[10][18];
- distancia[18][11]=distancia[11][18];
- distancia[18][12]=distancia[12][18];
- distancia[18][13]=distancia[13][18];
- distancia[18][14]=distancia[14][18];
- distancia[18][15]=distancia[15][18];
- distancia[18][16]=distancia[16][18];
- distancia[18][17]=distancia[17][18];
- distancia[18][18]=0;
- distancia[18][19]=594;
- distancia[18][20]=1927;
- distancia[18][21]=1641;
- distancia[18][22]=2085;
- // STA. ROSA
- distancia[19][0]=distancia[0][19];
- distancia[19][1]=distancia[1][19];
- distancia[19][2]=distancia[2][19];
- distancia[19][3]=distancia[3][19];
- distancia[19][4]=distancia[4][19];
- distancia[19][5]=distancia[5][19];
- distancia[19][6]=distancia[6][19];
- distancia[19][7]=distancia[7][19];
- distancia[19][8]=distancia[8][19];
- distancia[19][9]=distancia[9][19];
- distancia[19][10]=distancia[10][19];
- distancia[19][11]=distancia[11][19];
- distancia[19][12]=distancia[12][19];
- distancia[19][13]=distancia[13][19];
- distancia[19][14]=distancia[14][19];
- distancia[19][15]=distancia[15][19];
- distancia[19][16]=distancia[16][19];
- distancia[19][17]=distancia[17][19];
- distancia[19][18]=distancia[18][19];
- distancia[19][19]=0;
- distancia[19][20]=1487;
- distancia[19][21]=1975;
- distancia[19][22]=2419;
- // FORMOSA
- distancia[20][0]=distancia[0][20];
- distancia[20][1]=distancia[1][20];
- distancia[20][2]=distancia[2][20];
- distancia[20][3]=distancia[3][20];
- distancia[20][4]=distancia[4][20];
- distancia[20][5]=distancia[5][20];
- distancia[20][6]=distancia[6][20];
- distancia[20][7]=distancia[7][20];
- distancia[20][8]=distancia[8][20];
- distancia[20][9]=distancia[9][20];
- distancia[20][10]=distancia[10][20];
- distancia[20][11]=distancia[11][20];
- distancia[20][12]=distancia[12][20];
- distancia[20][13]=distancia[13][20];
- distancia[20][14]=distancia[14][20];
- distancia[20][15]=distancia[15][20];
- distancia[20][16]=distancia[16][20];
- distancia[20][17]=distancia[17][20];
- distancia[20][18]=distancia[18][20];
- distancia[20][19]=distancia[19][20];
- distancia[20][20]=0;
- distancia[20][21]=3569;
- distancia[20][22]=4012;
- // RIO GALLEGOS
- distancia[21][0]=distancia[0][21];
- distancia[21][1]=distancia[1][21];
- distancia[21][2]=distancia[2][21];
- distancia[21][3]=distancia[3][21];
- distancia[21][4]=distancia[4][21];
- distancia[21][5]=distancia[5][21];
- distancia[21][6]=distancia[6][21];
- distancia[21][7]=distancia[7][21];
- distancia[21][8]=distancia[8][21];
- distancia[21][9]=distancia[9][21];
- distancia[21][10]=distancia[10][21];
- distancia[21][11]=distancia[11][21];
- distancia[21][12]=distancia[12][21];
- distancia[21][13]=distancia[13][21];
- distancia[21][14]=distancia[14][21];
- distancia[21][15]=distancia[15][21];
- distancia[21][16]=distancia[16][21];
- distancia[21][17]=distancia[17][21];
- distancia[21][18]=distancia[18][21];
- distancia[21][19]=distancia[19][21];
- distancia[21][20]=distancia[20][21];
- distancia[21][21]=0;
- distancia[21][22]=444;
- // USHUAIA
- distancia[22][0]=distancia[0][22];
- distancia[22][1]=distancia[1][22];
- distancia[22][2]=distancia[2][22];
- distancia[22][3]=distancia[3][22];
- distancia[22][4]=distancia[4][22];
- distancia[22][5]=distancia[5][22];
- distancia[22][6]=distancia[6][22];
- distancia[22][7]=distancia[7][22];
- distancia[22][8]=distancia[8][22];
- distancia[22][9]=distancia[9][22];
- distancia[22][10]=distancia[10][22];
- distancia[22][11]=distancia[11][22];
- distancia[22][12]=distancia[12][22];
- distancia[22][13]=distancia[13][22];
- distancia[22][14]=distancia[14][22];
- distancia[22][15]=distancia[15][22];
- distancia[22][16]=distancia[16][22];
- distancia[22][17]=distancia[17][22];
- distancia[22][18]=distancia[18][22];
- distancia[22][19]=distancia[19][22];
- distancia[22][20]=distancia[20][22];
- distancia[22][21]=distancia[21][22];
- distancia[22][22]=0;
- //Pasa la matriz a una array de estructuras
- for(i=0;i<23;i++) {
- for(j=0;j<23;j++) {
- p[i].dist[j]=distancia[i][j];
- }
- }
- for(i=0;i<23;i++) {
- p[i].visitado=0;
- }
- printf("Ingrese ciudad inicial: "); scanf("%d",&cInicial);
- p[cInicial].visitado = 1;
- recorrido[0] = cInicial;
- cActual = cInicial;
- for (i=1;i<23;i++) {
- recorrido[i] = buscarMenorDistancia(cActual,p);
- p[recorrido[i]].visitado = 1;
- cActual = recorrido[i];
- }
- printf("Recorrido: ");
- for(i=0;i<23;i++) {
- printf("%d-",recorrido[i]);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment