Dev - C++ - ejecutar C desde DEV en windows xp

 
Vista:

ejecutar C desde DEV en windows xp

Publicado por cuxita (2 intervenciones) el 09/11/2006 11:52:19
Hola!
Estoy intentando ejecutar un programa en C en windows xp pero se me pira la ventana de ms-dos y no me deja ver el resultado.
El porgrama es este:
#include "tsp.h"

int main(int argc, char **argv) {

//FILE *fp1,*fsalida;
Ciudades c;
int i,*camino = NULL, *camino_asc = NULL;
double coste;

// Control de los parametros de entrada
if (argc < 3) {
printf("\n USO: ./p1 <numero_de_ciudades><archivo_de_mapa>\n\n");
return ERR;
}

// Carga los datos de las ciudades del fichero introducido como argumento
if (cargarDatos(&c, argv[2]) != OK) {
printf("\n ERROR: Carga de datos de ciudades fallida.\n\n");
return ERR;
}

//~ // Abrimos el fichero de salida
//~ if (!(fsalida = fopen("salida", "w+"))){
//~ printf("\n Error en el fichero de salida.\n\n");
//~ return ERR;
//~ }

//~ for (i=0; i<c.n_ciudades; i++){
//~ for(j=0; j<(c.n_ciudades); j++)
//~ printf("%lf ",c.ciudades[i][j]);
//~ printf("\n");
//~ }

camino = (int*)malloc(sizeof(int)*c.n_ciudades);
camino_asc = (int*)malloc(sizeof(int)*c.n_ciudades);
for (i=0; i<c.n_ciudades; i++)
coste = CalculaTSP(c,0,0,camino,camino_asc);

printf("Camino minimo\n");
for (i=0; i < c.n_ciudades; i++)
printf("%d ",camino_asc[i]);

printf("\n coste = %lf ",coste);


return 1;

}

Pongo system ("PAUSE"); DELANTE DEL RETURN PERO SE ME SIGUE PIRANDO...Sin embargo, sii quito la llamada a la función Cargar Datos is k se me queda la pantalla de ms-dos!!!por k es esto? k puedo hacer para k m koja los parametros de entrada si estoy haciendolo todo desde dev??????????????????

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ejecutar C desde DEV en windows xp

Publicado por ismael (1 intervención) el 09/11/2006 12:54:40
¿Por qué no mandas el código entero?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ejecutar C desde DEV en windows xp

Publicado por cuxita (2 intervenciones) el 09/11/2006 15:02:40
El código es:

#include "tsp.h"

int main(int argc, char **argv) {

Ciudades c;
int i,*camino = NULL, *camino_asc = NULL;
double coste;

// Control de los parametros de entrada
if (argc < 3) {
printf("\n USO: ./p1 <numero_de_ciudades><archivo_de_mapa>\n\n");
return ERR;
}

// Carga los datos de las ciudades del fichero introducido como argumento
if (cargarDatos(&c, argv[2]) != OK) {
printf("\n ERROR: Carga de datos de ciudades fallida.\n\n");
return ERR;
}

camino = (int*)malloc(sizeof(int)*c.n_ciudades);
camino_asc = (int*)malloc(sizeof(int)*c.n_ciudades);
for (i=0; i<c.n_ciudades; i++)
coste = CalculaTSP(c,0,0,camino,camino_asc);

printf("Camino minimo\n");
for (i=0; i < c.n_ciudades; i++)
printf("%d ",camino_asc[i]);

printf("\n coste = %lf ",coste);

//liberamos la memoria reservada.
liberarMemoria(&c,camino);

system("PAUSE");
return 1;

}

Este es el main y luego donde tengo la funciones implementadas en tsp.c es:
#include "tsp.h"
#include <string.h>
#include <math.h>

/*****************************************************************************/
int cargarDatos(Ciudades *c, char * nf) {

FILE *f;
int i, j;

//Abrimos el fichero
if ((f = fopen(nf, "r"))== NULL) {
printf("\n Error, apertura del fichero %s fallida.\n", nf);
return ERR;
}

//Procesamos la cabecera.Leemos el número de ciudades.
fscanf(f,"%d\n",&c->n_ciudades);
printf("num de ciudades %d\n",c->n_ciudades);

// Reservamos memoria para las ciudadeas
c->ciudades = reservaCiudades(c->n_ciudades);
if(!c->n_ciudades){
printf("\n ERROR, reserva para el conjunto de ciudades errónea.\n");
return ERR;
}

//Leemos la matriz que contiene las ciudades y sus costes.

for (i=0; i<c->n_ciudades; i++){
for(j=0; j<(c->n_ciudades-1); j++){
fscanf(f,"%lf-",&c->ciudades[i][j]);
}
fscanf(f,"%lf",&c->ciudades[i][j]);
}

return OK;
}

/**********************************************************************************/

double **reservaCiudades(int tamano){

double **aux;
int i;

// Reservamos memoria para el conjunto de patrones
aux = (double**)malloc(tamano*sizeof(double*));
if(!aux){
printf("\n ERROR, reserva para el conjunto de ciudades errónea.\n");
return NULL;
}

// Reservamos la memoria para la matriz de todas las ciudades.
for(i=0; i<tamano; i++){
aux[i] = (double*)malloc(tamano*sizeof(double));
if (aux[i]==NULL)
return NULL;
}

return aux;

}

/**************************************************************************************
* FUNCIÓN: liberarMemoria
*
* Función que libera la memoria reservada.
*
* Argumentos de entrada:
* - Ciudades *c: conjunto de ciudades a liberar.
* - int *camino: estructura del camino recorrido que hay q liberar.
***************************************************************************************/
void liberarMemoria(Ciudades *c, int *camino){
free((void*)c->n_ciudades);
free((void*)camino);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ejecutar C desde DEV en windows xp

Publicado por Humberto (1 intervención) el 23/04/2010 20:02:08
return 1;
system("pause");
}

asi deve de qudera amigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar