elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Buscador (C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Buscador (C)  (Leído 6,877 veces)
dfr2198

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Buscador (C)
« en: 16 Mayo 2017, 12:25 pm »

Estoy desarrollando un programa. La clave del programa es leer de un txt una serie de vectores.
EL primer problema es que esos vectores, dos de ellos deberían de ser vectores, y cada uno d elos elementos de ese vector deberían de ser cadenas de caracteres.Y no sé muy bien como implementar eso.

Es mi primer post. Espero no incumplir ninguna norma.
Me han sugerido que sea un vector de punteros, y cada puntero apunte a una cadena de caracteres. No sé muy bien si eso es viable.

En segundo lugar. Cada uno de los vectores mencionado correponde a una categoría de datos(de forma que los 7 vectores, el elemento [1] correponde a diferentes caracteristicas de un elemento).
El funcionamiento del porgrama sería "yo quiero buscar todos los elementos que tienen un rendimiento mayor que 85%". Ese 85% estaría colocoado en el vector "Rendimeintos" y te mostraría las demas carcateristicas (es decir, todos las posiciones [a] de los vectores, en los cuales el vector 7 (rendimeinto) tuviera la posicion [a] mayor de 85).

Para ello se me ocurre utilizar punteros, apuntado a cada uno de los vectores. Así, si selecciono "Potencia", se buscara en el vector potencia a traves de su puntero.
Me parece que los conceptos son buenos. De cualquier forma, cualquier recomendación o consejo sería muy de agradecer.
Muchas gracias a todos.


« Última modificación: 16 Mayo 2017, 12:38 pm por dfr2198 » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Buscador (C)
« Respuesta #1 en: 16 Mayo 2017, 12:53 pm »

Pon un ejemplo de cómo sería el texto.
Usa el botón cita o código de las herramientas de formato que tienes arriba para poner el contenido


En línea

dfr2198

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Buscador (C)
« Respuesta #2 en: 16 Mayo 2017, 13:08 pm »

El archivo de texto a cargar es este. He separado cada elemento medinate una coma y un espacio (planeo usar alguna variante de función while para cargar los vectores) y terminan en un ";". Es una version resumida (cada array tiene unos 100 elementos).
 
Código
  1. DAWN mission NSTAR, Resistojet, Radioisotope;  (Este sería el nombre)
  2. ESTAT, ETHERM, NTR SOLID; (codigo)
  3. 1.37e-06, 7.25e-04, 5.85e-03; (energía)
  4. 3,1, 296; (eficiencia)
  5. 9.00e-05, 1, 2; (empuje)
  6. 26, N/A, N/A; (peso)
  7.  

En cuanto al codigo, aun no lo he implementado, por lo que he explicado anteriormente. Solo he porgramado un menú switchcase para seleccionar el criterio de busqueda (nombre, eficiencia, etc).
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Buscador (C)
« Respuesta #3 en: 16 Mayo 2017, 15:59 pm »

Código:
Ah, ok, ok. Como cada línea tiene una representación de todos los elementos, ordenado según sus características, una forma sencilla sería:

[code = c]// Suponiendo que tu lista tendrá máximo 100 elementos.
#define ELEMENTOS 100

char nombre[ELEMENTOS][255];  // 255 es el tamaño máximo que se pueda dar al nombre + el caracter de fin de cadena, por tanto solo puedes tener como mucho 254 caracteres en el nombre.
char codigo[ELEMENTOS][255]; // Igual que nombres.
double energia[ELEMENTOS];
unsigned eficiencia[ELEMENTOS];
double empuje[ELEMENTOS];
int peso[ELEMENTOS]; // puedes usar un número negativo para representar N/A, por ejemplo.

Así tu elemento será interpretado en los arrays como su número índice, por ejemplo el primer elemento será
Código:
nombre[0]
codigo[0]
energia[0]
eficiencia[0]
...

El segundo elemento
Código:
nombre[1]
codigo[1]
energia[1]
...

Y para los arrays haces algo así:
Código:
Leer la línea del archivo
i = 0
Bucle mientras i < ELEMENTOS:
    token = dato de la linea
    nombre[i] = token
Fin de bucle

Leer la linea del archivo
i = 0
Bucle mientras i < ELEMENTOS
    token = dato de la linea
    codigo[i] = token
Fin de bucle
...
En línea

dfr2198

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Buscador (C)
« Respuesta #4 en: 16 Mayo 2017, 16:20 pm »

La verdad es que desconocía que podías jugar con los char de esa manera, muchas gracias.
En línea

dfr2198

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Buscador (C)
« Respuesta #5 en: 17 Mayo 2017, 12:42 pm »

Probablemente esté esto mal definido hasta la saciedad, pero no se me ocurre como salir de este berenjenal, esto está bastante más lejos de lo que yo controlo.

Código
  1. int objetivo;
  2. char nombre[][255], char codigo[][255], float power[], float v[], float isp[], float empuje[], float peso[];
  3.  
  4. FILE *fent;//Apertura de archivo.
  5. fent=fopen (field, "r");
  6. if (fent==NULL)
  7.  
  8. {
  9. printf("ERROR DE APERTURA DE %d\n",field);//Comprobación de errores en apertura.
  10. }
  11. if (fent != 0)
  12. {
  13. while (fgets (contadorf, 5000 , fent) != ";")//Aquí se realiza la cuenta para saber los elementos de char.
  14. {
  15. if (contadorf[contador]==",")
  16. {contador2++;
  17. }
  18. contador++;
  19. }
  20. nombre=(int*)malloc(sizeof(char)contador2);//Especificamos que el puntero contiene las cadenas especificadas por contador2
  21. codigo=(int*)malloc(sizeof(char)contador2);//Lo mimso
  22. int *ppower
  23. ppower=(int*)malloc(sizeof(int)contador2);//Especificamos que el array contiene contador2 enteros
  24. int *pv
  25. pv=(int*)malloc(sizeof(int)contador2);
  26. int *pisp
  27. pisp=(int*)malloc(sizeof(int)contador2);
  28. int *pempuje
  29. pempuje=(int*)malloc(sizeof(int)contador2);
  30. int *ppeso
  31. ppeso=(int*)malloc(sizeof(int)contador2);
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Buscador (C)
« Respuesta #6 en: 17 Mayo 2017, 13:02 pm »

Las instrucciones malloc no se ejecutan así, además en C mo hace falta realizar el cast.
Es más, el cast que haces está mal porque tu necesitas que sea puntero a char y lo haces a puntero a int.
En línea

dfr2198

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Buscador (C)
« Respuesta #7 en: 20 Mayo 2017, 19:19 pm »

Bueno, pues ya está. Un programa de 628 lineas de codigo, todas ellas dentro de la función principal hasta que me funcione bien y vea qué puedo separar... Y se atasca en la 39.
El programa se cuelga y windows me lo cierra. Y es entre la linea 39 y 51. Y ya no sé qué hacer.
Asíque acudo aquí a ver si a alguien se le ocure algo.
Sí. Probablemente sea el codigo más basura que hayáis visto, incluso a mi me parece feo a la vista. Pero...
(Y si alguen me dice a que se debe o como solucionar los warning de "comparision between pointer and integeer" (lineas de la 41 a la 385) ya me salava del todo)
 
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>  
  4. #include <windows.h>
  5. #include <math.h>
  6. int main (int argc, char *argv[])
  7. {
  8. char field [5000];
  9. int buscador=0;
  10.  
  11.  
  12. printf("A continuacion, indique los criterios de busqueda\n");
  13. printf("Introduzca 1 para buscar por el nombre del sistema\n");
  14. printf("Introduzca 2 para buscar por el código del sistema de propulsion\n");
  15. printf("Introduzca 3 para buscar según la energia del sistema (en MW)\n");
  16. printf("Introduzca 4 para buscar en terminos de velocidad de escape de la masa de reaccion\n");
  17. printf("Introduca 5 para buscar segun el Impulso especifico (en segundos)\n");
  18. printf("Pulse 6 para buscar según el empuje (en Newtons)\n");
  19. printf("Con el 7, buscará según la masa del motor(se mostraran los valores iguales o mas pequeños)\n");
  20. printf("Pulse 0 para salir\n");
  21. scanf("%d", &buscador);
  22. printf("Seleccione el contenido a buscar. tenga en cuenta que para valores numericos distintos del peso,\n se mostraran cantidades iguales o SUPERIORES\n");
  23.  
  24. int contador=1;
  25. int contador2=0;
  26. char contadorf[500000];
  27.  
  28. int objetivo;
  29. strcpy(field, argv[1]);
  30. FILE *fent;//Apertura de archivo.
  31. fent=fopen (field, "r");
  32.  
  33.  
  34.  
  35. if (fent==NULL)
  36. {
  37. printf("ERROR DE APERTURA DE %d\n",field);//Comprobación de errores en apertura.
  38. }
  39. printf("Se ha completado la carga del archivo\n");
  40.  
  41. fgets(contadorf, 5000, fent)
  42. for(contadorf[contador] != ";"; contador=0; contador++)//Aquí se realiza la cuenta para saber los elementos de char.
  43. {
  44. if (contadorf[contador]==",")
  45. {
  46. contador2++;
  47. }
  48. }
  49.  
  50.  
  51. printf("Se ha completado comprobación de longitud\n");
  52.  
  53. int i=0;
  54. char **nombre = (char**) calloc(contador2, sizeof(char*));
  55.  
  56. for ( i = 0; i < contador2; i++ )
  57. {
  58.    nombre[i] = (char*) calloc(500, sizeof(char));
  59. }
  60. char **codigo = (char**) calloc(contador2, sizeof(char*));
  61.  
  62. for ( i = 0; i < contador2; i++ )
  63. {
  64.    codigo[i] = (char*) calloc(500, sizeof(char));
  65. }
  66.  
  67. float * power = malloc(contador2 * sizeof(float));
  68. float * v = malloc(contador2 * sizeof(float));
  69. float * isp = malloc(contador2 * sizeof(float));
  70. float * empuje = malloc(contador2 * sizeof(float));
  71. float * peso = malloc(contador2 * sizeof(float));
  72. int x=0, y=0, z=0, xx=0, yy=0, zz=0;
  73. char auxiliar[40];
  74. float suma=0;
  75.  
  76. printf("Asignacion de memoria completada\n");
  77.  
  78. for(fgets(contadorf, contador2, fent)!=EOF; contador=0; contador++)
  79. {
  80. for(contadorf[x]!=";"; x=0; x++)
  81.  
  82. {
  83. while (contadorf[x]!=" ,")
  84. {
  85. y=0;
  86. nombre[x][y]=contadorf[x+y];
  87. y++;
  88. }
  89. }
  90. for(contadorf[x]!=";"; x; x++)
  91. {
  92.  
  93. while (contadorf[x]!=" ,")
  94. {
  95. y=0;
  96. codigo[z][y]=contadorf[x+y];
  97. y++;
  98. }
  99. z++;
  100. }
  101. for(contadorf[x]!=";"; x; x++)
  102. {
  103. {
  104.  
  105. while (contadorf[xx]!=" ,")
  106. {
  107. y=0;
  108. auxiliar[y]=contadorf[x+y];
  109. y++;
  110. }
  111. xx = strlen(auxiliar);
  112. while (xx>=0)
  113. {
  114. if (auxiliar[xx]=="1")
  115. {
  116. auxiliar[xx]=1;
  117. }
  118. if (auxiliar[xx]=="2")
  119. {
  120. auxiliar[xx]=2;
  121. }
  122. if (auxiliar[xx]=="3")
  123. {
  124. auxiliar[xx]=3;
  125. }
  126. if (auxiliar[xx]=="4")
  127. {
  128. auxiliar[xx]=4;
  129. }
  130. if (auxiliar[xx]=="5")
  131. {
  132. auxiliar[xx]=5;
  133. }
  134. if (auxiliar[xx]=="6")
  135. {
  136. auxiliar[xx]=6;
  137. }
  138. if (auxiliar[xx]=="7")
  139. {
  140. auxiliar[xx]=7;
  141.  
  142. }
  143. if (auxiliar[xx]=="8")
  144. {
  145. auxiliar[xx]=8;
  146. }
  147. if (auxiliar[xx]=="9")
  148. {
  149. auxiliar[xx]=9;
  150. }
  151. suma=suma+auxiliar[xx]*pow(10, strlen(auxiliar)-xx);
  152. xx--;
  153. }
  154. suma=power[zz];
  155. zz++;
  156. }
  157. suma=0;
  158. zz=0;
  159. for(contadorf[x]!=";"; x; x++)
  160. {
  161. {
  162.  
  163. while (contadorf[xx]!=" ,")
  164. {
  165. y=0;
  166. auxiliar[y]=contadorf[x+y];
  167. y++;
  168. }
  169. xx = strlen(auxiliar);
  170. while (xx>=0)
  171. {
  172. if (auxiliar[xx]=="1")
  173. {
  174. auxiliar[xx]=1;
  175. }
  176. if (auxiliar[xx]=="2")
  177. {
  178. auxiliar[xx]=2;
  179. }
  180. if (auxiliar[xx]=="3")
  181. {
  182. auxiliar[xx]=3;
  183. }
  184. if (auxiliar[xx]=="4")
  185. {
  186. auxiliar[xx]=4;
  187. }
  188. if (auxiliar[xx]=="5")
  189. {
  190. auxiliar[xx]=5;
  191. }
  192. if (auxiliar[xx]=="6")
  193. {
  194. auxiliar[xx]=6;
  195. }
  196. if (auxiliar[xx]=="7")
  197. {
  198. auxiliar[xx]=7;
  199.  
  200. }
  201. if (auxiliar[xx]=="8")
  202. {
  203. auxiliar[xx]=8;
  204. }
  205. if (auxiliar[xx]=="9")
  206. {
  207. auxiliar[xx]=9;
  208. }
  209. suma=suma+auxiliar[xx]*pow(10, strlen(auxiliar)-xx);
  210. xx--;
  211. }
  212. suma=v[zz];
  213. zz++;
  214. }
  215.  
  216. }
  217. suma=0;
  218. zz=0;
  219. for(contadorf[x]!=";"; x; x++)
  220. {
  221. {
  222.  
  223. while (contadorf[xx]!=" ,")
  224. {
  225. y=0;
  226. auxiliar[y]=contadorf[x+y];
  227. y++;
  228. }
  229. xx = strlen(auxiliar);
  230. while (xx>=0)
  231. {
  232. if (auxiliar[xx]=="1")
  233. {
  234. auxiliar[xx]=1;
  235. }
  236. if (auxiliar[xx]=="2")
  237. {
  238. auxiliar[xx]=2;
  239. }
  240. if (auxiliar[xx]=="3")
  241. {
  242. auxiliar[xx]=3;
  243. }
  244. if (auxiliar[xx]=="4")
  245. {
  246. auxiliar[xx]=4;
  247. }
  248. if (auxiliar[xx]=="5")
  249. {
  250. auxiliar[xx]=5;
  251. }
  252. if (auxiliar[xx]=="6")
  253. {
  254. auxiliar[xx]=6;
  255. }
  256. if (auxiliar[xx]=="7")
  257. {
  258. auxiliar[xx]=7;
  259.  
  260. }
  261. if (auxiliar[xx]=="8")
  262. {
  263. auxiliar[xx]=8;
  264. }
  265. if (auxiliar[xx]=="9")
  266. {
  267. auxiliar[xx]=9;
  268. }
  269. suma=suma+auxiliar[xx]*pow(10, strlen(auxiliar)-xx);
  270. xx--;
  271. }
  272. suma=isp[zz];
  273. zz++;
  274. }
  275.  
  276. }
  277. suma=0;
  278. zz=0;
  279. for(contadorf[x]!=";"; x; x++)
  280. {
  281. {
  282.  
  283. while (contadorf[xx]!=" ,")
  284. {
  285. y=0;
  286. auxiliar[y]=contadorf[x+y];
  287. y++;
  288. }
  289. xx = strlen(auxiliar);
  290. while (xx>=0)
  291. {
  292. if (auxiliar[xx]=="1")
  293. {
  294. auxiliar[xx]=1;
  295. }
  296. if (auxiliar[xx]=="2")
  297. {
  298. auxiliar[xx]=2;
  299. }
  300. if (auxiliar[xx]=="3")
  301. {
  302. auxiliar[xx]=3;
  303. }
  304. if (auxiliar[xx]=="4")
  305. {
  306. auxiliar[xx]=4;
  307. }
  308. if (auxiliar[xx]=="5")
  309. {
  310. auxiliar[xx]=5;
  311. }
  312. if (auxiliar[xx]=="6")
  313. {
  314. auxiliar[xx]=6;
  315. }
  316. if (auxiliar[xx]=="7")
  317. {
  318. auxiliar[xx]=7;
  319.  
  320. }
  321. if (auxiliar[xx]=="8")
  322. {
  323. auxiliar[xx]=8;
  324. }
  325. if (auxiliar[xx]=="9")
  326. {
  327. auxiliar[xx]=9;
  328. }
  329. suma=suma+auxiliar[xx]*pow(10, strlen(auxiliar)-xx);
  330. xx--;
  331. }
  332. suma=empuje[zz];
  333. zz++;
  334. }
  335.  
  336. }
  337. suma=0;
  338. zz=0;
  339. for(contadorf[x]!=";"; x; x++)
  340. {
  341. {
  342.  
  343. while (contadorf[xx]!=" ,")
  344. {
  345. y=0;
  346. auxiliar[y]=contadorf[x+y];
  347. y++;
  348. }
  349. xx = strlen(auxiliar);
  350. while (xx>=0)
  351. {
  352. if (auxiliar[xx]=="1")
  353. {
  354. auxiliar[xx]=1;
  355. }
  356. if (auxiliar[xx]=="2")
  357. {
  358. auxiliar[xx]=2;
  359. }
  360. if (auxiliar[xx]=="3")
  361. {
  362. auxiliar[xx]=3;
  363. }
  364. if (auxiliar[xx]=="4")
  365. {
  366. auxiliar[xx]=4;
  367. }
  368. if (auxiliar[xx]=="5")
  369. {
  370. auxiliar[xx]=5;
  371. }
  372. if (auxiliar[xx]=="6")
  373. {
  374. auxiliar[xx]=6;
  375. }
  376. if (auxiliar[xx]=="7")
  377. {
  378. auxiliar[xx]=7;
  379.  
  380. }
  381. if (auxiliar[xx]=="8")
  382. {
  383. auxiliar[xx]=8;
  384. }
  385. if (auxiliar[xx]=="9")
  386. {
  387. auxiliar[xx]=9;
  388. }
  389. suma=suma+auxiliar[xx]*pow(10, strlen(auxiliar)-xx);
  390. xx--;
  391. }
  392. suma=peso[zz];
  393. zz++;
  394. }
  395. }
  396. }
  397. printf("%c",*nombre);
  398. printf("%c",*codigo);
  399. }
  400. fclose (fent);
  401.  
  402. printf("Carga de datos a programa completada");
  403.  
  404. int * resultados = malloc(contador2 * sizeof(int));
  405. i=0;
  406. int j=0;
  407. char objetivof[50];
  408. switch(buscador)
  409. {
  410.  
  411. case 1:
  412.  
  413. printf("Ha pulsado el 1\n");
  414. printf("Introduzca el contenido a buscar.");
  415. scanf("%c", &objetivof);
  416. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  417. while(i<contador2)
  418. {
  419. if (strstr(nombre[i], objetivof) != NULL);
  420. {
  421. resultados[j]=i;
  422. j++;
  423. }
  424. i++;
  425. }
  426. break;
  427.  
  428. case 2:
  429.  
  430. printf("Ha pulsado el 2\n");
  431. printf("Introduzca el contenido a buscar.");
  432. scanf("%c", &objetivof);
  433. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  434. while(i<contador2)
  435. {
  436. if (strstr(codigo[i], objetivof) != NULL);
  437. {
  438. resultados[j]=i;
  439. j++;
  440. }
  441. i++;
  442. }
  443. break;
  444.  
  445.  
  446. case 3:
  447. printf("Ha pulsado el 3\n");
  448. printf("Introduzca el contenido a buscar.");
  449.  
  450. scanf("%d", &objetivo);
  451. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  452. while(i<contador2)
  453. {
  454. if((power[i])>=objetivo)
  455. {
  456. resultados[j]=i;
  457. j++;
  458. }
  459. i++;
  460. }
  461. break;
  462.  
  463.  
  464. case 4:
  465. printf("Ha pulsado el 4\n");
  466. printf("Introduzca el contenido a buscar.");
  467.  
  468. scanf("%d", &objetivo);
  469. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  470. while(i<contador2)
  471. {
  472. if((v[i])>=objetivo)
  473. {
  474. resultados[j]=i;
  475. j++;
  476. }
  477. i++;
  478. }
  479.  
  480.  
  481. break;
  482.  
  483.  
  484. case 5:
  485. printf("Ha pulsado el 5\n");
  486. printf("Introduzca el contenido a buscar.");
  487.  
  488. scanf("%d", &objetivo);
  489. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  490. while(i<contador2)
  491. {
  492. if((isp[i])>=objetivo)
  493. {
  494. resultados[j]=i;
  495. j++;
  496. }
  497. i++;
  498. }
  499.  
  500. break;
  501.  
  502.  
  503. case 6:
  504. printf("Ha pulsado el 6\n");
  505. printf("Introduzca el contenido a buscar.");
  506.  
  507. scanf("%d", &objetivo);
  508. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  509. while(i<contador2)
  510. {
  511. if((empuje[i])>=objetivo)
  512. {
  513. resultados[j]=i;
  514. j++;
  515. }
  516. i++;
  517. }
  518.  
  519. break;
  520.  
  521.  
  522. case 7:
  523. printf ("Ha pulsado el 7\n");
  524. printf("Introduzca el contenido a buscar.");
  525.  
  526. scanf("%d", &objetivo);
  527. printf("Los siguientes resultados concuerdan con los criterios de busqueda:\n");
  528. while(i<contador2)
  529. {
  530. if((peso[i])<=objetivo)
  531. {
  532. resultados[j]=i;
  533. j++;
  534. }
  535. i++;
  536. }
  537.  
  538. break;
  539.  
  540. case 0:
  541. exit(0);
  542.  
  543.  
  544. default:
  545. {
  546. printf("Ha introducido un caracter no incluido en el menu\n");
  547. }
  548. break;
  549. }
  550.  
  551. printf("Busqueda y comparacion completada\n");
  552.  
  553. if(j != 0)
  554. {
  555. printf("Se han encontrado los siguientes resultados que concuerdan con el criterio:\n");
  556. for(i=0; i!=j; i++)
  557. {
  558. printf("%c\n", *nombre[resultados[i]]);
  559. printf("[%d]\n",i);
  560. }
  561. }
  562. if (j != 0)
  563. {
  564. int sino=0;
  565. int comp=1;
  566. printf("¿Desea ver los datos de alguno de los sistemas presentados? [1 si, 0 no]\n");
  567. scanf("%c", &sino);
  568. if(sino==1)
  569. {
  570. printf("A cada resultado anterior se le ha asignado un numero identificativo que figura bajo cada resultado. Por favor, insertelo a continuacion.\n");
  571. printf("Para salir, presione el [0].\n");
  572. while(comp!=0)
  573. { scanf("%d", &comp);
  574. printf("Nombre: %c", *nombre[comp]);
  575. printf("Tipo: %c", *codigo[comp]);
  576. printf("Energia: %f", power[comp]);
  577. printf("velocidad de escape: %f", v[comp]);
  578. printf("ISP: %f", isp[comp]);
  579. printf("Empuje: %f", empuje[comp]);
  580. printf("Peso: %f", peso[comp]);
  581. printf("Introduzca más datos, o pulse 0 para salir.\n");
  582. }
  583. }
  584. }
  585. if(j != 0)
  586. {
  587. int sino=0;
  588. int comp=0;
  589. printf("¿Desea iniciar la funcion calculadora? [1 si, 0 no]");
  590. scanf("%c", &sino);
  591. if(sino==1)
  592. {
  593. int mf=0;
  594. int mi=0;
  595. int comb=0;
  596. float resultado=0;
  597. printf("A cada resultado anterior se le ha asignado un numero identificativo que figura bajo cada resultado. Por favor, insertelo a continuacion.\n");
  598. scanf("%d",&comp);
  599. printf("¿Cuanto pesa el vehiculo?(en kg)\n");
  600. scanf("%d",&mi);
  601. printf("¿Cuantos kilos de combustible lleva?\n");
  602. scanf("%d", &comb);
  603. mf=comb+mi;
  604. resultado=v[comp]*log(mi/mf);
  605. printf("Delta-V estimada: %f m/s\n");
  606. }
  607. }
  608. for ( i = 0; i < contador2; i++ )
  609. {
  610.    free(nombre[i]);
  611. }
  612.  
  613. free(nombre);
  614. for ( i = 0; i < contador2; i++ )
  615. {
  616.    free(codigo[i]);
  617. }
  618.  
  619. free(codigo);
  620. free(v);
  621. free(isp);
  622. free(power);
  623. free(peso);
  624. free(empuje);
  625.  
  626.  
  627. }

Muchas gracias a cualquiera que se tome su tiempo en ayudar a gente como yo.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Buscador (C)
« Respuesta #8 en: 20 Mayo 2017, 19:29 pm »

Sobre esa parte que comentas. Si encuentras un error en la apertura del archivo debes detener el programa para que no siga actuando sobre ese archivo, sin embargo solo marcas el error pero dejas al programa que continúe.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Buscador (C)
« Respuesta #9 en: 20 Mayo 2017, 19:32 pm »

lo que veo por encimita es el error de manejo de caractreres


Código:
contadorf[contador]==","


";" no es el char de el simbolo ; , es un string que contiene eso y otras cosas

tiene que ser ';' con comillas simples
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscador
Sugerencias y dudas sobre el Foro
celeron7777777 2 2,228 Último mensaje 27 Noviembre 2004, 10:39 am
por ...:::SuPrA:::...
¿buscador? « 1 2 »
Sugerencias y dudas sobre el Foro
buhomaster 10 4,560 Último mensaje 24 Noviembre 2006, 09:56 am
por Neobius
Buscador
Scripting
Nilrac 2 2,263 Último mensaje 7 Febrero 2010, 18:31 pm
por Nilrac
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines