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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31 32 33 34 35 36 37 38
231  Programación / Programación C/C++ / Re: Problema De Lectura Y Paso A Matriz en: 23 Junio 2012, 02:21 am
printf(bloques[0][0])    ????????????????????????
232  Programación / Programación C/C++ / Re: ayuda para crear bodega en c++ en: 22 Junio 2012, 09:12 am
Hola! creo haber encontrado el error :)

La funcion fwrite, como ya sabes recibe 4 argumentos, el primero es un puntero que apunta a lo que se va a guardar y el segundo especifica el tamaño de lo que se guarda, aqui el problema. Tomemos como ejemplo pricemart.blanco:
 blanco es una matriz de struct pasillos entonces blanco[f][c] es UNA struct pasillos. Por lo tanto si haces un sizeof(pricemart.blanco) y sizeof(pricemart.blanco[f][c]) tenes dos tamaños totalmente diferentes, el primero devuelve el tamaño de la matriz y el segundo el de una struct pasillos (en otras palabras estas guardando en un bloque de memoria grande algo muy chiquito)
Resumiendo deberia ser asi:
Código
  1. for (f=0; f<maxi; f++){
  2.             for (c=0; c<maxi; c++){
  3.             fwrite(&pricemart.blanco[f][c], sizeof(struct pasillos), 1, bodega);
  4.         }
  5.         }

Creo(no estoy seguro) que tambien funcionaria asi:
Código
  1. fwrite(pricemart.blanco, sizeof(pricemart.blanco), 1, bodega); // sin los for, sin nada


Si te funciona alguno de los dos, acordate de usar el mismo concepto para fread

Saludos
233  Programación / Programación C/C++ / Re: Ayuda con estos códigos (Actualizado 22/06/2012) en: 22 Junio 2012, 08:24 am
Hola! lo que subiste no funciona xq anterior siempre es igual a NULL, nunca entra al else; pero no esta del todo mal...

De todas formas el error principal esta en que no tenes claro el concepto de pasaje por valor y por pseudoreferencia. A la funcion vos le pasas el puntero lst, es decir en la llamada haces
Código
  1. EliminarNodos(lst, maximo); // pasas por valor a lst
El problema es que si vos tratas asi a lst cualquier modificacion que hagas en la funcion(es decir haces q apunte a otro lado) cuando retornes al main no va a tener efecto... Para resolver esto tenes q pasar a lst por pseudoreferencia
Código
  1. // en la llamada
  2. EliminarNodos(&lst, maximo); // paso la direccion de lst
y en la funcion:
Código
  1. void EliminarNodos(NODO **lst, int  maximo) // se trata como un puntero a puntero
  2. { }


Entonces, el codigo seria mas o menos asi:
Código
  1. void EliminarNodos(NODO **lst, int maximo){
  2.    NODO *indice=NULL, *anterior=NULL;
  3.   int flag;
  4.    if(*lst!=NULL){
  5.        indice=*lst;
  6.  
  7.        while((indice)!=NULL){
  8.             flag=0;
  9.            if((indice->num)>=maximo){
  10.                if(indice==*lst){ // es decir es el inicio de la lista
  11.                    *lst=indice->sig; // ahora el inicio de la lista es el siguiente
  12.                      free(indice);
  13.                      indice=*lst;
  14.                }else{ // no es el inicio
  15.                    anterior->sig=indice->sig;
  16.                    free(indice);
  17.                    indice=anterior->sig;
  18.                }
  19.              flag=1;
  20.            }
  21.            if(!flag) { /* nose borran nodo */
  22.               anterior=indice;
  23.               indice=anterior->sig; /* cambia al sig nodo */
  24.             }
  25.        } /* fin del while */
  26.    }
  27. }
Fijate q solo agregue un par de cosas a lo q tenias(ya q no estaba tan mal). Te falto considerar que pasa cuando indice->num>=maximo es falso, el bucle se vuelve infinito ya que no cambias de nodo, te falto agregar indice=anterior->sig; pero para q esto funcione bien agregue un flag. Cuando flag=0 es porque no se cumplio que num>=maximo(nose borran nodos) entonces se ejecuta
Código
  1.            if(!flag) {
  2.               anterior=indice;
  3.               indice=anterior->sig; /* cambia al sig nodo */
  4.             }
de lo contrario flag=1 nose ejecuta lo anterior mencionada...

Si funciona lo que puse, analiza porque lo hice asi teniendo en cuenta todas las consideraciones. Saludos
234  Programación / Programación C/C++ / Re: necesito ayuda de un programador en c urgentee!! en: 21 Junio 2012, 14:05 pm
No se hacen tareas

Saludos
235  Programación / Programación C/C++ / Re: Solicitando ayuda para programa en C en: 21 Junio 2012, 07:24 am
hola!
Citar
Resulta que estoy haciendo un programa donde me pida la cantidad con número y me de en la pantalla la cantidad con letras
te referis a hacer esto, se ingresa el numero 10 y en pantalla se imprime "diez"??? Si es asi no es un ejercicio facil, te aconsejaria que lo hagas mas adelante cuando tengas un poco mas de pratica... Igual si buscas bien en el foro alguien habia preguntado algo asi, e incluso se postio un programa sobre eso


Saludos
236  Programación / Programación C/C++ / Re: Error de estructuras en C en: 20 Junio 2012, 09:45 am
Hola! las estructuras, a diferencia de los arreglos, se pueden asignar unas a otras. Esto:
Código
  1.                                 aux.c=ALUMNO[l].c;
  2.                                               strcpy(aux.nombre,ALUMNO[l].nombre);
  3.                                               aux.calificacion=ALUMNO[l].calificacion;
  4.                                               aux.lista=ALUMNO[l].lista;
  5.                                               aux.dia=ALUMNO[l].dia;
  6.                                               aux.mes=ALUMNO[l].mes;
  7.                                               aux.ano=ALUMNO[l].ano;
equivale a:
Código
  1. aux=ALUMNO[l];

Saludos

PD: el ordenamiente lo hace bien??? sino busca el metodo de la burbuja, que es uno de los mas faciles de entender
237  Programación / Programación C/C++ / Re: ayuda para crear bodega en c++ en: 20 Junio 2012, 00:16 am
Hola! usa la etiqueta GeSHi para poner codigo, tal ves asi la gente tenga mas ganas de responder
238  Programación / Programación C/C++ / Re: Error de estructuras en C en: 18 Junio 2012, 04:37 am
Hola!
Citar
El problema ahora reside que al ejecutarse el programa lo que imprime de la variable "ALUMNO[l].calificacion" y la variable "ALUMNO[l].lista" es al parecer la dirección de memoria de dicha variable y no el valor que mandé guardar en el ciclo anterior con el "scanf"

mira como declaras tus variables haber si te das cuenta:
Citar
int calificacion[100];
        int lista[100];


Saludos
239  Programación / Programación C/C++ / Re: Ayuda con programa en C en: 17 Junio 2012, 08:17 am
Citar
la variable total la usas 2 veces con diferentes resultados y eso no se puede.
por que no se puede??
240  Programación / Programación C/C++ / Re: Ayuda extraer int de un string C++ en: 17 Junio 2012, 05:16 am
Hola! busca la funcion atoi


Saludos
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31 32 33 34 35 36 37 38
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines