<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: pablo22_4@hotmail.com<br>To: cconclase@listas.conclase.net<br>Date: Mon, 26 Nov 2012 00:13:59 +0000<br>Subject: Re: [C con Clase] Duda <br><br>

<style><!--
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

--></style>
<div dir="ltr">
<br>Hola tengo una consulta la cual me ha superado muy lejos no encuentro el error, nunca use la lista pero espero que alguien me ayude. Y si la estoy usando mal que me lo hagan saber .<div>Desde ya muchas gracias.</div><div><br></div><div>Mi codigo es sobre una practica de listas la cual me tira un error en la parte de ordenacion la verdad nose donde esta el error por que en la parte donde se pasan la lista entre dos funciones</div><div>una adentro de la otra ahi creo q esta el error pero nose cual es ...Ayuda por favorr..</div><div>En las funciones copiar(coche**,coche**) y ordenar (coche**,int *)</div><div><br></div><div><div><br></div><div>#include <stdio.h></div><div>#include <stdlib.h></div><div>#include <conio.h></div><div>#define V         1</div><div>#define F         0</div><div>#define M         20</div><div><br></div><div>struct tauto</div><div>{</div><div>       int codigo;</div><div>       char marca[M];</div><div>       char modelo[M];</div><div>       char color[M];</div><div>       struct tauto *sig;</div><div>};</div><div>typedef struct tauto coche;</div><div><br></div><div><br></div><div>//Prototipos.-</div><div>void menu();</div><div>void agregar (coche ** , int *);</div><div>void borrar  (coche ** , int *);</div><div>void buscar  (coche ** , int *);</div><div>void ordenar (coche ** , int *);</div><div>void mostrar (coche ** , int *);</div><div>void copiar  (coche  ** , coche  ** );</div><div><br></div><div>int main()</div><div>{</div><div>    int ind=0,*indx;       //Indice de cantidad de elementos en la lista</div><div>    indx=&ind;</div><div>    </div><div>    char opcion='z';         //Opcion para el menu</div><div>    </div><div>    coche *cabeza;</div><div>    cabeza=NULL;             </div><div>    </div><div>    //======== Bucle Menu ========//</div><div>    for ( ; opcion!='s' && opcion!='S' ; )</div><div>    {</div><div>        menu();</div><div>        fflush(stdin);</div><div>        printf("%c\n",opcion=getch());</div><div>        switch (opcion)</div><div>        {</div><div>               case '1': agregar(&cabeza,indx);</div><div>                         break; </div><div>               case '2': borrar(&cabeza,indx);</div><div>                         break;</div><div>               case '3': buscar(&cabeza,indx);</div><div>                         break;</div><div>               case '4': ordenar(&cabeza,indx);</div><div>                         break;</div><div>               case '5': mostrar(&cabeza,indx);</div><div>                         break;</div><div>               case 'S':;</div><div>               case 's': printf("\nCerrando programa...\n");</div><div>                         break;</div><div>               default:</div><div>                       printf("\nIngrese una opcion valida...\n\n");</div><div>                       system("pause");</div><div>                       break;     </div><div>       }</div><div>    }</div><div>    //======== Fin Bucle Menu ========//</div><div>    system("pause");</div><div>    return 0;</div><div>}</div><div><br></div><div>void agregar( coche **cabeza, int *indx)</div><div>{</div><div>     coche *p;</div><div>     p=NULL;</div><div>     if ( (*cabeza)==NULL )</div><div>     {</div><div>        printf("Lista vacia.-\n");</div><div>        </div><div>        p=(coche *)malloc(sizeof(coche));</div><div>     </div><div>        printf("\nAuto nro %i : ",*indx+1);</div><div>        printf("\n\tCodigo :  ");</div><div>        scanf("%i",&p->codigo);</div><div>        printf("\tMarca :   ");</div><div>        scanf("%s",p->marca);</div><div>        printf("\tModelo :  ");</div><div>        scanf("%s",p->modelo);</div><div>        printf("\tColor :   ");</div><div>        scanf("%s",p->color);</div><div>        </div><div>        p->sig=NULL;</div><div>        (*cabeza)=p;</div><div>     }</div><div>     else</div><div>     {</div><div>        p=(coche *)malloc(sizeof(coche));</div><div>     </div><div>        printf("\nAuto nro %i : ",*indx+1);</div><div>        printf("\n\tCodigo :  ");</div><div>        scanf("%i",&p->codigo);</div><div>        printf("\tMarca :   ");</div><div>        scanf("%s",p->marca);</div><div>        printf("\tModelo :  ");</div><div>        scanf("%s",p->modelo);</div><div>        printf("\tColor :   ");</div><div>        scanf("%s",p->color);</div><div>        </div><div>        p->sig=(*cabeza);</div><div>        (*cabeza)=p;</div><div>     }</div><div>     (*indx)=(*indx+1);</div><div>     printf("\n");</div><div>     system("pause");</div><div>}</div><div><br></div><div>void borrar ( coche **cabeza,int *indx )</div><div>{</div><div>     int i,codigo=0,flag=F;</div><div>     </div><div>     coche *p,*anterior=NULL;</div><div>     p=(*cabeza);</div><div>     </div><div>     printf("\nIngrese el codigo del auto a borrar : ");</div><div>     scanf("%i",&codigo);</div><div>     </div><div>     for (i=0;i<(*indx);i++)</div><div>     {</div><div>         if  ( anterior==NULL )</div><div>         {</div><div>             if  ( p->codigo==codigo )</div><div>            {</div><div>                  (*cabeza)=p->sig;</div><div>                  free(p);</div><div>                  //p=cabeza;</div><div>                  (*indx)=(*indx-1);</div><div>                  flag=V;</div><div>                  printf("\nSe borro con exito! .- \n");</div><div>                  break;</div><div>            }else</div><div>            {</div><div>                 anterior=p;</div><div>                 p=p->sig;</div><div>            }</div><div>         }</div><div>         else </div><div>         {</div><div>              if  ( p->codigo==codigo )</div><div>              {</div><div>                  anterior->sig=p->sig;</div><div>                  free(p);</div><div>                  (*indx)=(*indx-1);</div><div>                  flag=V;</div><div>                  printf("\nSe borro con exito! .- \n");</div><div>                  break;</div><div>              }else</div><div>              {</div><div>                   anterior=p;</div><div>                   p=p->sig;</div><div>              }</div><div>         }</div><div>     }</div><div>     if ( flag == F )</div><div>        printf("\nNo se encontro el auto.- \n");</div><div>     printf("\n");</div><div>     system("pause");     </div><div>}</div><div><br></div><div><br></div><div>void buscar ( coche **cabeza,int *indx ) </div><div>{</div><div>     int i,flag=F;</div><div>     char mod[M];</div><div>     </div><div>     coche *p;</div><div>     p=(*cabeza);</div><div>     </div><div>     printf("\nIngrese el modelo a buscar : ");</div><div>     scanf("%s",&mod);</div><div>     printf("Auto : ");</div><div>     </div><div>     for ( i=0;i<(*indx);i++ )</div><div>     {</div><div>         if ( strcmp(p->modelo,mod)==0 )</div><div>         {</div><div>            printf("\n\tCodigo :  %i",p->codigo);</div><div>            printf("\n\tMarca :   %s",p->marca); </div><div>            printf("\n\tModelo :  %s",p->modelo);</div><div>            printf("\n\tColor :   %s\n\n",p->color);</div><div>            flag=V;</div><div>            break;</div><div>         }else</div><div>              p=p->sig;</div><div>     }</div><div>     if ( flag == F )</div><div>        printf("\n\tNo encontrado.-\n");</div><div>     printf("\n");</div><div>     system("pause");</div><div>}</div><div><br></div><div><br></div><div>void mostrar( coche **cabeza,int *indx)</div><div>{</div><div>     int i;</div><div>     coche *p;</div><div>     p=(*cabeza);</div><div>     </div><div>     printf("\n======Mostrando======\n");</div><div>     printf("\nElementos en la lista : %i \n",*indx);</div><div>     for (i=0;i<(*indx);i++)</div><div>     {</div><div>         printf("\nAuto nro %i : ",i+1);</div><div>         printf("\n\tCodigo :  %i",p->codigo);</div><div>         printf("\n\tMarca :   %s",p->marca); </div><div>         printf("\n\tModelo :  %s",p->modelo);</div><div>         printf("\n\tColor :   %s\n\n",p->color);</div><div>         </div><div>         p=p->sig;</div><div>     }</div><div>     printf("\n");</div><div>     system("pause");</div><div>}</div><div><br></div><div>void copiar (coche **d, coche **f)</div><div>{</div><div>     coche *temp,*dest,*fuent;</div><div>     </div><div>     dest=(*d);</div><div>     fuent=(*f);</div><div>     </div><div>     temp->codigo=dest->codigo;</div><div>     strcpy ( temp->marca,dest->marca );    </div><div>     strcpy ( temp->modelo,dest->modelo );    </div><div>     strcpy ( temp->color,dest->color );    </div><div>     </div><div>     dest->codigo=fuent->codigo;</div><div>     strcpy ( dest->marca,fuent->marca );    </div><div>     strcpy ( dest->modelo,fuent->modelo );    </div><div>     strcpy ( dest->color,fuent->color );    </div><div>     </div><div>     fuent->codigo=temp->codigo;</div><div>     strcpy ( fuent->marca,temp->marca );    </div><div>     strcpy ( fuent->modelo,temp->modelo );    </div><div>     strcpy ( fuent->color,temp->color );</div><div>     </div><div>}</div><div><br></div><div>void ordenar( coche **cabeza,int *indx )</div><div>{</div><div>     int i,j;</div><div>     coche *p,*aux;</div><div>     p=(*cabeza);</div><div>     </div><div>     printf("\nElementos en la lista : %i \n",*indx);</div><div>     for (i=0;i<(*indx)-1;i++)</div><div>     {   </div><div>         aux=p;      </div><div>         for (j=i+1;j<(*indx);j++)</div><div>         {</div><div>             printf("\n[%i][%i]",i,j);</div><div>             aux=aux->sig;</div><div>             if (strcmp(p->marca,aux->marca)>0)</div><div>             {  </div><div>                printf("\ncambio");</div><div>                copiar(&p,&aux);</div><div>             }</div><div>         }</div><div>         p=p->sig;</div><div>     }</div><div>     printf("\nLista Ordenanda .-\n");</div><div>     system("pause");</div><div>}</div><div><br></div><div>   </div><div>void menu()</div><div>{</div><div>     system("cls");</div><div>     printf("\n==============MENU==============");</div><div>     printf("\n1)Agregar");</div><div>     printf("\n2)Borrar");</div><div>     printf("\n3)Buscar");</div><div>     printf("\n4)Ordenar");</div><div>     printf("\n5)Mostrar");</div><div>     printf("\nS)Salir.-");</div><div>     </div><div>     printf("\n\n\t\tOpcion : ");</div><div>}</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>                                        </div>
<br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</div><embed type="application/x-dap-background" id="DAPPlugin" style="visibility: collapse">                                      </div></body>
</html>