Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - BatchianoISpyxolo

#31
Cita de: Dark00 en 12 Noviembre 2012, 01:36 AM
La unica forma que se me ocurre de hacerlo ahora
es esta:

Código (cpp) [Seleccionar]
for(int i=0; i<15; i++)
{
  scanf("%d", &calif);
  califa[i] = calif;
}

Puede que te sirva


¿Por qué no lo guardas en califa directamente?

Código (cpp) [Seleccionar]
for(int i=0; i<15; i++)
{
  scanf("%d", &califa[i]);
}
#32
Programación C/C++ / Re: Continuar estudiando C
8 Noviembre 2012, 23:37 PM
Si has estudiado un poco así a lo loco, te recomiendo que practiques un poco más algoritmos y que aprendas estructuras de datos básicas como las pilas, las colas, las listas y los árboles binarios (diferentes implementaciones). Eso te va a dar una gran visión respecto a la programación y a cómo pensar.

Después de eso, yo te recomendaría crear una shell en C. Ya sé que es en modo consola, pero vas practicando los conceptos vistos. Por ejemplo, manejar una lista de procesos en segundo plano de la shell.

Luego ya te podrías ir al apartado gráfico ( o no ) y buscar librerías interesantes sobre gráficos... etc etc. Y con los conocimientos que adquieras ya crear programillas interesantes.
#33
@rir3760, ya, ya xD
#34
The stricmp function is available for C++ programs. It is available for C only when the program defines the __cplusplus__strings__ macro.

:\
#35
Programación C/C++ / Re: problema vectores en c
8 Noviembre 2012, 16:25 PM
@do-while el problema está en el tipo del vector. La expresión está bien que se asigna está bien.

(rand()%100+1)/10 = [1..100] / 10

Números enteros entre 1 y 100 divididos entre 10. Evidentemente solo los múltiplos de 10 darán como resultado un entero.

#36
@migcw:

La terminación de las instrucciones con doble piunto y coma es una sintaxis incorrecta.

Y en lo segundo el char '\0' representa la terminación de un string o cadena de caracteres en memoria. Porque si guardas un string en memoria y luego lo quieres mostrar, en algún sitio tiene que terminar.
#37
Programación C/C++ / Re: Error!
8 Noviembre 2012, 01:21 AM
Debo decir que la inserción de un elemento de la lista debería devolver un tipo booleano (int), no un puntero a un nodo.

En pseudocódigo sería (depende del tipo de lista y la inserción):

función insertar(lista, elemento, [posición]) -> lista, boolean

[posición], entre corchetes porque es opcional.

Siendo lista el puntero que apunta al primer nodo de la lista (en una lista simplemente enlazada)

Siendo elemento el elemento albergado en cada nodo de la lista

La función devuelve la lista modificada (si fue posible) y un valor booleano(int) para saber si se pudo realizar la inserción

Nota*: No podemos insertar un nuevo elemento cuando no hay memoria disponible.

Si ( punteroANuevoNodo = NULO) entonces Error de memoria - No se puede insertar
#38
Programación C/C++ / Re: Error!
7 Noviembre 2012, 23:02 PM
_nodo *apuntador2 s_copy(_nodo *apuntador) {...}

Fíjate que tratas de devolver el tipo "_nodo * apuntador2" y eso no es ningún tipo. El tipo es _nodo *

De todas formas yo crearía el tipo tPosL (_nodo *) y el tipo tLista (tPosL) para que se lea mucho más claro.

Aquí te dejo el código corregidos los errores de sintaxis pero da segmentation fault, así que revisa la memoria:

#include <stdio.h>
#include <stdlib.h>

struct registro
{
    int valor;
    struct registro *sig;
};

typedef struct registro _nodo;

_nodo *crearlista(_nodo *apuntador)
{
    return (apuntador=NULL);
}

_nodo *insertarEnLista(int numero, _nodo *apuntador )
{
    _nodo *registroNuevo, *apuntadorAuxiliar;

    registroNuevo = (_nodo*)/*casteo*/ malloc(sizeof(_nodo));

    if(registroNuevo!=NULL)
    {/*lleno el nuevo nodo suelto*/
        registroNuevo->valor=numero;
        registroNuevo->sig=NULL;

        if(apuntador==NULL)
            apuntador=registroNuevo;
        else
        {
            apuntadorAuxiliar = apuntador;

            while(apuntadorAuxiliar->sig != NULL)
                apuntadorAuxiliar = apuntadorAuxiliar->sig;

            apuntadorAuxiliar->sig = registroNuevo;
        }
    }

    return apuntador;
}

void imprimirLista(_nodo *apuntador)
{
    _nodo *apuntadorAuxiliar;

    apuntadorAuxiliar=apuntador;

    printf("Contenido de la lista: inicioLista->");

    while(apuntadorAuxiliar != NULL)
    {
        printf("%d -> ", apuntadorAuxiliar->valor);
        apuntadorAuxiliar = apuntadorAuxiliar->sig;
    }
    printf("NULL\n");

    return;
}

_nodo * s_copy(_nodo *apuntador)
{
    _nodo *registroAuxiliar, *apuntador2 , *apuntadorAuxiliar , *apuntadorAuxiliar2;
    apuntador2=crearlista(apuntador2);


      if(apuntador==NULL) {
            printf("la lista que copio estaba vacia");
            apuntador2=apuntador;
      }

      else
        {
            apuntadorAuxiliar = apuntador;
            apuntadorAuxiliar2 = apuntador2;

            while(apuntadorAuxiliar->sig != NULL)
                {
                    *apuntadorAuxiliar2=*apuntadorAuxiliar;

                    apuntadorAuxiliar2=apuntadorAuxiliar2->sig;
                    apuntadorAuxiliar = apuntadorAuxiliar->sig;
                }
        }

        return apuntador2;
}


int main()
{
    _nodo *inicioLista;
    _nodo *inicioLista2;

    inicioLista=crearlista(inicioLista);
    inicioLista2=crearlista(inicioLista2);


    inicioLista = insertarEnLista(5, inicioLista);
    inicioLista = insertarEnLista(6, inicioLista);
    inicioLista = insertarEnLista(7, inicioLista);
    inicioLista = insertarEnLista(8, inicioLista);
    inicioLista = insertarEnLista(9, inicioLista);

    inicioLista2 = s_copy(inicioLista);

    imprimirLista(inicioLista2);



    return EXIT_SUCCESS;
}
#39
El tipo de dato que devuelve una función es el tipo de dato que representa al llamarla.
#40
No he mirado el código ni nada. Pero por lo que dices, seguro que hay alguna función en string.h que sirva para pasar una cadena de caracteres a minúsculas: estilo lowercase o a mayúsculas como uppercase.

Existe la función:

short stricmp (const unsigned char *s1, const unsigned char *s1);

Que es insensible a may y minus.