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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 [144] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
1431  Programación / Programación C/C++ / Re: problema con struct como parametro a funciones en: 9 Noviembre 2011, 04:45 am
Debe funcionar siempre y cuando la declaracion de la estructura se encuentre antes de la declaracion y uso de la funcion.

¿Puedes publicar el codigo fuente completo del programa?

Un saludo
1432  Programación / Programación C/C++ / Re: Problema del compilador?!?! en: 9 Noviembre 2011, 02:02 am
no entiendo eso de los printf, pues el /n, tengo entendido que salta de renglón, y si iría al final, mostraría en el siguiente renglón el scanf

El problema al llamar a printf de esta forma:
Código
  1. printf("\n Input an integer value for x: ");
  2. scanf("%d", &x);
Es que no tenemos garantizado que la cadena "\n Input an integer value for x: " se imprima inmediatamente en la salida estándar (puede quedarse en su bufer).

Para tener esa seguridad se debe cumplir uno de tres escenarios:

A) El bufer de la salida estándar se llena.
B) La secuencia de caracteres a imprimir termina con '\n'.
C) Se indica explícitamente que debe vaciarse el bufer.

El primer caso no lo controlamos así que mejor nos olvidamos de el.

El segundo caso se consigue al llamar a la función así:
Código
  1. printf("\n Input an integer value for x: \n");
Pero como no se formatea valor alguno se puede sustituir esa función con "puts" generando el mismo efecto (ella imprime automáticamente el '\n' después de la cadena indicada):
Código
  1. puts("\n Input an integer value for x: ");

El tercer caso se consigue llamando a la función "fflush" para que vacie el bufer del stream indicado como argumento (stdout es la salida estándar):
Código
  1. printf("Input an integer value for x: ");
  2. fflush(stdout);

Por ultimo lo subjetivo (cuestión de estilo): cuando uno escribe no pasa al siguiente renglón y empieza a escribir ahí así nada mas.

En su lugar uno escribe hasta alcanzar el final del renglón y solo entonces pasa al siguiente. Esa es la idea de tener el '\n' al final de la cadena (y no al principio).

Un saludo
1433  Programación / Programación C/C++ / Re: Error con sencillo programa de C en: 8 Noviembre 2011, 20:31 pm
Para empezar elimina el uso de <conio.h>, mas informacion en el tema Lo que no hay que hacer en C/C++. Nivel basico.

Para leer tres numeros debes utilizar:
Código
  1. printf("Introduce tres numeros separados por espacios:\n");
  2. scanf("%i %i %i", &num1, &num2, &num3);

Un saludo
1434  Programación / Programación C/C++ / Re: crear un programa _ que permita identificar una palabra palindrome! en: 8 Noviembre 2011, 14:52 pm
No deberia ser &palabra[0 + 1] ?
Ambas son equivalentes y resultan en la direccion en memoria del segundo elemento del array. Para el caso la forma mas corta es "palabra + 1".

Un saludo
1435  Programación / Programación C/C++ / Re: Problema del compilador?!?! en: 8 Noviembre 2011, 04:19 am
Si ese programa lo copiaste tal cual de ese libro mejor cambia a otro ya que tiene un error y varios "detallitos". El tema obligatorio a leer en este caso es [Libros/Papers] C/C++.

El error se encuentra en la ultima llamada a scanf, se deben pasar dos argumentos pero la función solo recibe uno:
Código
  1. scanf("%d");

Los detallitos son la definición de la función "main" (en C99 no se puede omitir el tipo) y las llamadas a printf: las tres primeras, al no terminar con el carácter '\n', no dan garantías de que el bufer de la salida estándar se vacié y las tres ultimas se pueden remplazar con llamadas a "puts".

Un saludo
1436  Programación / Programación C/C++ / Re: Me podrian ayudar!!!!!! caracteres por cadenas?? y contar nodos con recursion??? en: 7 Noviembre 2011, 02:59 am
Pero si los ordena de la a la z... ya lo ejecute varias veces.
Tienes razón. Lo siento.

El programa tiene errores en la función "insertar", demasiado larga en mi opinión y si tratas de insertar los caracteres 'a', 'b' y 'c' en ese orden todos menos el primero se pierden, revisala.

Un saludo
1437  Programación / Programación C/C++ / Re: Me podrian ayudar!!!!!! caracteres por cadenas?? y contar nodos con recursion??? en: 7 Noviembre 2011, 02:21 am
Te respondo al MP:

Los datos en el programa aparecen desordenados en el programa porque este ... no los ordena. Para ello necesitas de una función mas que ordene los nodos de la lista. En el caso de listas vinculadas lo usual es MergeSort pero si apenas empiezas es mejor la ordenación al insertar cada nodo.

En cuanto a la función que imprima el numero de caracteres antes de uno dado debes descomponer eso también en funciones: una que imprima el resultado y otra que calcule el numero de caracteres antes del buscado.

Y faltan los requisitos de la(s) funcion(es). Sin eso difícil dar una respuesta exacta.

No voy a hacerlo todo. En el caso del calculo de forma recursiva del numero de elementos antes de uno dado ello se puede realizar de esta forma:
Código
  1. struct nodo {
  2.    char valor;
  3.    struct nodo *sig;
  4. };
  5.  
  6. /* ... */
  7.  
  8. struct nodo *nodos_antes(struct nodo *p, int *num, char ch);
  9.  
  10. /* ... */
  11.  
  12. void imprimir_na(struct nodo *p, char ch)
  13. {
  14.    int num = 0;
  15.  
  16.    if (nodos_antes(p, &num, ch) == NULL)
  17.        puts("El caracter no es parte de la lista");
  18.    else
  19.        printf("Hay %d elementos antes del caracter %c\n", num, ch);
  20. }
  21.  
  22. struct nodo *nodos_antes(struct nodo *p, int *num, char ch)
  23. {
  24.    if (p == NULL || p->valor == ch)
  25.        return p;
  26.    else {
  27.        ++*num;
  28.        return nodos_antes(p->sig, num, ch);
  29.    }
  30. }
Es una función de soporte "imprimir_na" que imprime el resultado de la otra función recursiva "nodos_antes".

Un saludo
1438  Programación / Programación C/C++ / Re: No me imprime los decimales en: 7 Noviembre 2011, 01:01 am
P.D: Por qué si no pongo getchar(); antes de return 0; no se puede apreciar bien el resultado porqué la pantalla se va muy rápido.
Ese no es problema del programa sino de tu entorno de desarrollo (IDE), la mayoría como los basados en LCC o la versión gratuita de Microsoft no tienen ese problema.

¿Cual estas utilizando? (Si es Dev-C++ simplemente cambia a otro)

Un saludo
1439  Programación / Programación C/C++ / Re: Ayuda con recursion... en: 6 Noviembre 2011, 01:44 am
En el primer punto te piden que imprimas la lista en orden inverso, para ello basta con:
Código
  1. void imprimir_inv(struct lista_nodos *p)
  2. {
  3.    if (p != NULL){
  4.        imprimir_inv(p->sigPtr);
  5.        printf("valor == %c\n", p->valor);
  6.    }
  7. }

Para la segunda función debes indicar los requisitos de esta con relación al numero de nodos antes y después del nodo a buscar.

Un saludo
1440  Programación / Programación C/C++ / Re: [Ayuda] Sumas de distintas bases numericas en C en: 6 Noviembre 2011, 01:27 am
necesito ayuda con un programa que me pide sumar un numero con su inverso
Primero tienes que definir "inverso" ya que 8 no es el inverso de 8.

en bases desde 10 hasta 2, obviamente en base 10 es facil pero en las otras es donde me complico ya que no sé como hacer que en vez de por ejemplo me sume 8 + 8 = 16  lo haga en base 9 8+8=18
El problema no es la suma sino presentar el resultado en una base dada, para ello puedes empezar utilizando el motor de búsqueda de los foros para revisar los temas sobre conversión de bases numéricas.

También debes presentar los avances que llevas del programa.

Un saludo
Páginas: 1 ... 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 [144] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines