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 - twins

#11
Programación C/C++ / Re: warnings
28 Diciembre 2012, 16:37 PM
Eso es porque los nodos los estas ingresando al inicio de la lista por ejemplo si ingresas el 1 y despues el 2, en este caso el 2 quedara a la izquierda del 1 es decir 2,1 y tu puntero cabeza apunta al segundo nodo recien ingresado, en este caso el 2, por lo tanto cuando imprimes, imprimes de izquierda a derecha ose 2,1.
si quieres que los nodos sea impresos segun el orden en que fueron ingresados tendras que modificar la funcion insertar_cabeza.
#12
Si sube el codigo porfavor, porque asi no es mucho lo que podemos hacer  :-\
#13
Programación C/C++ / Re: warnings
22 Diciembre 2012, 02:24 AM
Hola pues te explico para eliminar un nodo que este en una posicion distinta del inicio o final necesitas usar dos punteros para poder hacer los enlaces en este caso yo solo modifique la funsion eliminar_elemento tu puedes revisar y ver cuales fueron los cambios cordiales saludos  ;D

#include <stdio.h>
#include <stdlib.h>
typedef struct nodo{
    int dato;
    struct nodo *sig;
}NODO;
NODO* crear_nodo(int x);
void insertar_cabeza(NODO **cabeza,int x);
void eliminar_elemento(NODO **cabeza);
int main(void){
    int i,num,x;
    NODO *cabeza,*ptr;
    cabeza = NULL;
    printf("Cuantos elementos quieres?\n");
    scanf("%d",&num);
    printf("Lista Simplemente Ligada!\n\n");
    for(i=0;i<num;i++){
        printf("Dame el elemento %d\n",i+1);
        scanf("%d",&x);
        insertar_cabeza(&cabeza,x);
        system("cls");
    }
    for(ptr=cabeza;ptr!=NULL;ptr=ptr->sig)
        printf("%d\t",ptr->dato);
    eliminar_elemento(&cabeza);
    for(ptr=cabeza;ptr!=NULL;ptr=ptr->sig)
        printf("%d\t",ptr->dato);
    return 0;
}
NODO* crear_nodo(int x){
    NODO *p;
    p = (NODO*)malloc(sizeof(NODO));
    p->dato = x;
    p->sig = NULL;
    return p;
}
void insertar_cabeza(NODO **cabeza,int x){
    NODO *nuevo;
    nuevo = crear_nodo(x);
    nuevo->sig = *cabeza;
    *cabeza = nuevo;
}
void eliminar_elemento(NODO **cabeza){
int n;
NODO *aux1=*cabeza,*aux2=aux1;
    printf("Dame el elemento a eliminar\n");
    scanf("%d",&n);
while(aux2->dato!=n){
aux1=aux2;
aux2=aux2->sig;
}
aux1->sig=aux2->sig;
    free(aux2);
}
#14
ajajaja no problem todo ok  ;D
#15
No es posible todo esta comprobado  ;) talvez lo dices por esto for(i=0;i<5;i++) pues el 5<5 eso es falso por lo tanto no tomara el valor 5.
#16
Coma ya te han comentado en c se deben declarar todas las variables antes de utilizarlas por lo tanto si queieres guardar 5 valores por separado debes de declarar 5 variables, por suerte en c existen los arrays o vectores que simplifican este tema y para acceder a un valor solo debes de conocer su posicion, saludos y asi es como queda el codigo  :)

#include<stdio.h>
int main(void){
int i,vector[5],mayor,menor;
float promedio=0;
for(i=0;i<5;i++){//llena el vector
printf("ingrese valor\n");
scanf("%i",&vector[i]);
}
for(i=0;i<5;i++)//imprime el vector
printf("[%i]",vector[i]);
puts("\n");
mayor=vector[0];
menor=vector[0];
for(i=0;i<5;i++){
promedio+=vector[i];
if(vector[i]>mayor)//busca el elemento mayor
mayor=vector[i];
if(vector[i]<menor)//busca el elemento menor
menor=vector[i];
}
printf("el mayor es %i\n",mayor);
printf("el menor es %i\n",menor);
printf("el promedio es %.2f\n",promedio/5);
        getchar();
getchar();
return(0);
}
#17
Programación C/C++ / Re: ayuda en c vectores
18 Diciembre 2012, 18:55 PM
aaaaa ok perfecto asi queda claro todo deviste poner esto desde un principio ajaja
#18
Programación C/C++ / Re: ayuda en c vectores
18 Diciembre 2012, 16:43 PM
bien asi quedo no se si es lo que necesitas, y otra cosa si estas aprendiendo c te recomiendo que partas con una buena base, porque hacer un programa sin declarar la funcion main() es un descuido muy grande saludos.

#include<stdio.h>// no tenias declarada esta libreria
#define dim 10 //esto no lleva ;
int main(void){//no tenias la funcion main()
int v[dim]={1,2,2,2,5,4,4,8,9,10};// fataba ; y ademas el vector no tenia elementos
int t,c=0,valor,k=0;
printf("introduce un valor:\n");
scanf("%d",&valor); // valor no estaba declarado
for(t=0;t<dim;t++){
if(v[t]==valor)
c++;
if(v[t]==valor*2)
k++;
}
printf("el valor aparece %i ves(es)\n",c);
printf("el valor por dos aparece %i ves(es)\n",k);
return(0);
}
#19
Programación C/C++ / Re: problema en c
18 Diciembre 2012, 00:45 AM
Disculpa a que te refieres con imprimir de arriba a abajo? algo asi o no.

*  *  *  *
*  *  *  *
*  *  *  *
*      *  *
*      *  *
*          *
*          *
            *
            *
            *
#20
Programación C/C++ / Re: tipos de enteros en C
16 Diciembre 2012, 21:36 PM
La memoria es asignada segun el complilador por ejemplo para int algunos reservan 2 bytes y otros reservan 4 bytes, lamentablemente no hay mucho que hacer a lo que tu deseas