• Jueves 14 de Noviembre de 2024, 03:56

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - AdolfoC

Páginas: [1]
1
C/C++ / Re: Función Anidada
« en: Lunes 7 de Junio de 2010, 18:06 »
Claro!!! Es genial, no se me ocurrió realizarlo de ese modo.

Muchas gracias a ambos por la ayuda!!!

2
C/C++ / Re: Función Anidada
« en: Domingo 6 de Junio de 2010, 14:37 »
Jey, tu respuesta es sumamente aclaratoria, no obstante aun me queda la siguiente duda:

Los valores correspondientes al contenido de la estructura están en el "main", asignados a las variables que les corresponda.

Cómo hago para hacerle llegar estas variables al campo de parámetros de "nuevo_nodo"?  Quiero decir, le puedo pasar esos parámetros y que los "reciba" directamente del main a pesar de tratarse de una función anidada en otra?
Agradezco mucho la ayuda.

Un saludo!!!

3
C/C++ / Función Anidada
« en: Domingo 6 de Junio de 2010, 13:14 »
Hola a todos:

Estoy preparando una pequeña aplicación que usa una lista enlazada. A la hora de crear un nuevo nodo con datos, debo usar una función que además de crear el nodo lo inserte en su sitio.

Todos los fputs/fgets y printf/scanf se solicitan en el programa principal, es decir, las funciones solo realizan las operaciones necesarias y retornan un valor para usar en el "main".

Teniendo esto en cuenta, si la función "crear_nodo" está anidada en la función "insertar_nodo", sería posible pasarle de algún modo los  parámetros necesarios a la función "crear_nodo"?

Ejemplo:

int insertar_nodo (str_nodo **cabeza)
{
   str_nodo *actual;
   str_nodo *anterior;
...
   str_nodo *elem = crear_nodo ( DE DÓNDE PUEDO RECIBIR LOS PARAMETROS?);
   
....
}

Si no quedase otro remedio realizaría las funciones separadamente, pero si fuese posible realizarlo de este modo sería estupendo.

Muchas gracias por la ayuda y saludos!!!

4
C/C++ / Re: Función de Comparación
« en: Lunes 15 de Marzo de 2010, 00:01 »
Hola Jormar. Te agradezco enormemente que hayas comentado tan correctamente el funcionamiento del código y la forma de iteración del mismo, no era capaz de verlo. Ahora tengo muy claro el funcionamiento y lo arreglaré según explicas.

Muchas gracias.

5
C/C++ / Función de Comparación
« en: Domingo 14 de Marzo de 2010, 20:07 »
Hola a todos. Tengo implementada en un programa una sencilla función que comprueba dígito a dígito los componentes de una palabra o frase sin espacios para mostrar si la misma es palíndrome o no (si puede leerse igual en uno u otro sentido). En teoría es un algoritmo sencillo, sin embargo siempre obtengo resultado negativo, nunca "es palíndromo". Me ayudaría alguno/a a comprobar el código? No soy capaz de ver el error... Muchas gracias de antemano!!!

int esPalindrom(char cad[], char cad2[], char espai)
{
    int i,j,r;
   
    //Borramos los espacios de la cadena.
    borraEspai(cad, cad2, espai);

    //Aplicamos el algoritmo de comprobación de palíndromo.
    //Asignamos como fija la posición ES palíndromo.
    //Comparamos el primer dígito con el último.
    r = 1;
    for(i=0; i < strlen(cad2)-1; i++)
    {
        for(j=strlen(cad2)-1; j >= 0; j--)
        {
            //Si alguna posición es diferente el valor r cambia a '0'.
            if (cad2 != cad2[j])
            {
                r = 0;
            }
        }
    }
    return r;
}

6
C/C++ / Programa Cuenta Dígitos y los Invierte
« en: Lunes 7 de Diciembre de 2009, 20:09 »
Hola a todos!!!!

He finalizado un programilla simple que dada una entrada numérica (enteros) por teclado, indica la cantidad de dígitos del número introducido e invierte la posición de los mismos. La compilación funciona bien, pero durante la ejecución es como si se quedara bloqueado contínuamente en un bucle, sin embargo no veo el porqué del problema. Os pego el código, a ver si un alma caritativa me dice que ocurre, porque soy incapaz de ver el problema....muchas gracias por adelantado!!!!

#include <stdio.h>
#include <math.h>


int invertidor(int num);    //Declaración de la función que es llamada en el programa principal para realizar la inversión del número//

int main()                  //Programa principal que cuenta los dígitos y efectua la inversión mediante llamada a función//
{
    int n;
    int dig;

    printf("nIntroduzca un numero: ");
    scanf("%dn",&n);
    dig=log10(n)+1;        //Cálculo matemático para obtener la cantidad de dígitos del número//
    printf ("El numero %d tiene %d digitos.n", n, dig);
    printf("nEl numero %d al reves es: %dn",n, invertidor(n));
    return 0;
    system ("pause");      //Necesario para visualizar el programa hasta el final en ciertos compiladores//
}

int invertidor(int num)    //Funcion que efectua la inversion y devuelve el número invertido//
{  
   int pos=0;
   while(num>0)            //Bucle para realizar la operación hasta alcanzar el valor cero//
   {
    pos=(pos*10)+(num%10); //Cálculo matemático para invertir un número que entre en la función//
    num=num/10;
   }
   return(pos);
}

Páginas: [1]