<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:14pt;color:#000000;font-family:'Times New Roman', Times, serif;" dir="ltr">
<p>Hola Ana:</p>
<p><br>
</p>
<p>¡¡Uffff!!  Mucho ha cambiado el C, o yo no he sabido C, en mi vida.  He visto tan raro tu código que lo he tenido que probar para ver si era factible que "eso" funcionara.   Pues si que compilaba, y hasta se podía ejecutar y todo.  Ordenaba mal, pero eso
 era lo de menos.</p>
<p><br>
</p>
<p>En mis tiempos los parámetros se pasaban por valor, y no por referencia.  Y los miembros de una estructura u objeto se tenían que copiar uno a uno, o en el caso de objetos, hacer un constructor de copia.</p>
<p><br>
</p>
<p>Bueno, bueno, menos literatura, y vamos al grano.  el error lo tienes en esta línea siguiente.</p>
<p><br>
</p>
<p><span style="font-family: "Times New Roman", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 18.6667px;"><b>if (ordenado[j].nombre < p[j - 1].nombre)</b></span><br>
</p>
<p><span style="font-family: "Times New Roman", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 18.6667px;"><br>
</span></p>
<p><span style="font-family: "Times New Roman", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 18.6667px;">La tienes que corregir así:</span></p>
<p><span style="font-family: "Times New Roman", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 18.6667px;"><br>
</span></p>
<p></p>
<p style="font-family: "Times New Roman", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 18.6667px;">
<span style="font-size: 18.6667px;"><b>if (ordenado[j].nombre < ordenado[j - 1].nombre)</b></span><br>
</p>
<div><span style="font-size: 18.6667px;"><b><br>
</b></span></div>
<div>La tabla p[], hasta el momento, sigue con los valores originales.  Aprovechando el pase por referencia de la tabla, en el programa que te envío, también he creado otra función que ordena al contrario, y que prescinde de la tabla "ordenado", y de la asignación
 final de "ordenado" a "p", si quieres puedes reconvertir tu función de la misma manera.</div>
<br>
<p></p>
<div id="Signature">
<div id="divtagdefaultwrapper" style="font-size:14pt; color:#000000; background-color:#FFFFFF; font-family:'Times New Roman',Times,serif">
Saludos<br>
<font face="Times New Roman" size="4" style="font-size:16pt">Daniel de Dios "</font><font face="Times New Roman" size="4" style="font-size:16pt"><b>El Ignorado</b></font><font face="Times New Roman" size="4" style="font-size:16pt">"</font><br>
<br>
</div>
</div>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block; width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>De:</b> Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Ana Pallares Vilar <anapallares20@gmail.com><br>
<b>Enviado:</b> sábado, 7 de enero de 2017 11:42<br>
<b>Para:</b> Lista de correo sobre C y C++<br>
<b>Asunto:</b> [C con Clase] vector ordenado</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div>Hola me podrian decir que es lo que falla en este procedimiento? Es que solo me ordena los dos primeros el resto se los deja y no encuentro el fallo </div>
<div>Gracias</div>
<div><br>
</div>
<div>void FicheroOrdenado (persona p[TAM], short num)</div>
<div>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>short i, j, k;</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>persona orden, ordenado[TAM];</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>if (num > 1)</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>for (i = 0; i < num; i++)</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>ordenado[i] = p[i];</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span></div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>if (i > 0)</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>for ( j = i; j > 0; j--)</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>if (ordenado[j].nombre < p[j - 1].nombre)</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>{</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>orden = ordenado[j];</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>ordenado[j] = ordenado[j - 1]; </div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>ordenado[j - 1] = orden;</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>}</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>}</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>}</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>}</div>
<div><span class="gmail-Apple-tab-span" style="white-space:pre"></span>}</div>
</div>
</div>
</div>
</div>
</body>
</html>