• Jueves 14 de Noviembre de 2024, 04:07

Autor Tema:  No Encuentro El Error  (Leído 880 veces)

strudan

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
No Encuentro El Error
« en: Sábado 11 de Marzo de 2006, 21:23 »
0
hola, se que cualauiera que este programando un poquito seguro lo va asacar, pero yo me estoy volviendo loco y los libros que tengo no me ayudan.
lo que pretendo es que al ordenar el vector sueldo los otros datos hagan lo mismo.
ej:
nombre     sueldo         n tel
juan          2500           253...
pedro        1200           4256

pero cuando lo ordeno el sueldo cambia, pero de los nombres solo la primer letra, aca les dejo el codigo, no quieron que me lo corrigan solo si pueden indicarme en donde me estoy equivocando.
saludos!
 :hola:

   
Código: Text
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4.  
  5. #define TL 10
  6. #define TN 3
  7. #define TD 3
  8.  
  9. void cargadatos(char [][TL],float[],char[][TL]);
  10. void muestradatos(char[][TL],float[],char[][TL]);
  11. void ordena(char[][TL],float[],char[][TL]);
  12. void main()
  13. {
  14.   float vecsueldos[TN];
  15.   char vecnombres[TD][TL],vectel[TD][TL];
  16.   clrscr();
  17.   cargadatos(vecnombres,vecsueldos,vectel);
  18.   clrscr();
  19.   muestradatos(vecnombres,vecsueldos,vectel);
  20.   getch();
  21.   clrscr();
  22.   ordena(vecnombres,vecsueldos,vectel);
  23.   getch();
  24. }
  25. void cargadatos(char vecnom[][TL],float vecsueld[],char vectel[][TL])
  26. {
  27. int i;
  28. char nombre[TL],tel[TL];
  29.   for (i=0;i<TD;i++)
  30.     {
  31.       printf("ingrese el nombre del empleado: ");
  32.       fflush(stdin);
  33.       gets(nombre);
  34.       strcpy(vecnom[i],nombre);
  35.       printf("ingrese el sueldo del empleado :");
  36.       scanf("%f",&vecsueld[i]);
  37.       printf("ingrese el numero de telefono: ");
  38.       fflush(stdin);
  39.       gets(tel);
  40.       strcpy(vectel[i],tel);
  41.     }
  42. }
  43.  
  44. void muestradatos(char vecnom[][TL],float vecsueld[],char vectel[][TL])
  45. {
  46.   int i;
  47.   printf("Los datos ingresados son: ");
  48.   for(i=0;i<TD;i++)
  49.     printf("\n\t %s \t\t %f \t %s",vecnom[i],vecsueld[i],vectel[i]);
  50. }
  51. void ordena(char vecnom[][TL],float vecsueld[],char vectel[][TL])
  52. {
  53.        int i,h,z,a,f;
  54.        float aux;
  55.        char  auxi,auxil;
  56.   for (i=0;i<TD-1;i++)
  57.       for (h=i+1;h<TD;h++)
  58.       {
  59.       for(a=0;a<TL;a++)
  60.       for(f=0;f<TL;f++)
  61.  
  62.  
  63.        {
  64.     if (vecsueld[i]>vecsueld[h])
  65.     { aux=vecsueld[i];
  66.     vecsueld[i]=vecsueld[h];
  67.     vecsueld[h]=aux;
  68.     auxi=vectel[i][a];
  69.     vectel[i][a]=vectel[h][f];
  70.     vectel[h][f]=auxi;
  71.     auxil=vecnom[i][a];
  72.     vecnom[i][a]=vecnom[h][f];
  73.     vecnom[h][f]=auxil;
  74.     }
  75.     }
  76.     }
  77.  
  78.  
  79.     {
  80.     printf("  los datos ordenados por sueldo son: \n");
  81.     {
  82.     for(z=0;z<TD;z++)
  83.     printf("\n\t %s \t\t %f \t %s",vecnom[z],vecsueld[z],vect[z]);
  84.     getch();
  85.  
  86. }
  87. }
  88. }
  89.  

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: No Encuentro El Error
« Respuesta #1 en: Martes 14 de Marzo de 2006, 16:42 »
0
la verdad no has sido lo suficientemente claro con lo que deseas hacer, asi que no te puedo ayudar.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io