Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2015, 01:05
uriel_bla
 
Fecha de Ingreso: septiembre-2015
Mensajes: 3
Antigüedad: 8 años, 7 meses
Puntos: 0
Exclamación Arreglos en C; Moda de un conjunto de números.

Hola, quisiera que me ayudaran un programa que tiene que determinar cual es la moda o la bimoda de un grupo de números, hasta ese momento el programa va bien, mi problema es cuando el programa no tiene moda, o sea que todos sus números son diferentes y por lo tanto su frecuencia es 1, cuando sea este caso el programa debe decir "No hay moda", pero no es así, quisiera que me ayudaran haciéndome saber mi error en el programa, les dejo mi código para que lo vean.
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <windows.h>
  3. int main()
  4. {
  5.  int tamano;
  6.  R:
  7.  printf("Introduzca la cantidad de numeros a ingresar: ");
  8.  scanf("%i",&tamano);
  9.  
  10. int A[tamano],B[tamano],MODA[tamano];
  11. int j, i, temp=0;
  12. system("cls");
  13. printf ("Introduce %i numeros a ordenar:\n",tamano);
  14. for (i = 0; i < tamano; i++)
  15. {
  16. printf ("%i: ", i + 1);
  17. scanf ("%i", &A[i]);
  18. printf ("\n");
  19. }
  20. for (i = 0; i < (tamano - 1); i++)
  21. {
  22. for(j = i + 1; j < tamano; j++)
  23. {
  24. if(A[j] < A[i])
  25. {
  26. temp = A[j];
  27. A[j] = A[i];
  28. A[i] = temp;
  29. }
  30. }
  31. }
  32. /* Mostramos los números ordenados */
  33. printf ("Los numeros ordenados son:\n");
  34. for (i = 0; i < tamano; i++)
  35. {
  36. printf("%i, ", A[i]);
  37. }
  38. /* INICIAR ARREGLO MODA*/
  39. for (i = 0; i < tamano; i++)
  40. {
  41. MODA[i]=1;
  42. }
  43. /* COMPARACION */
  44. for (i = 0; i < (tamano - 1); i++)
  45. {
  46. for(j = i + 1; j < tamano; j++)
  47. {
  48. if(A[i] == A[j])
  49. {
  50. MODA[i] = MODA[i]+1;
  51. }
  52. }
  53. }
  54. for (i = 0; i < tamano; i++)
  55. {
  56. B[i] = MODA[i];
  57. }
  58. for (i = 0; i < (tamano - 1); i++)
  59. {
  60. for(j = i + 1; j < tamano; j++)
  61. {
  62. if(MODA[j] < MODA[i])
  63. {
  64. temp = MODA[j];
  65. MODA[j] = MODA[i];
  66. MODA[i] = temp;
  67. }
  68. }
  69. }
  70. {
  71. for (i = 0; i < tamano; i++)
  72. {
  73. if(B[i] == 1)
  74. {
  75. temp++;
  76. }
  77. }
  78. if(MODA[tamano-1]==MODA[tamano-2])
  79. {
  80. printf(".\n");
  81. printf("\n\n\nLas modas y sus frecuencias:\n");
  82. for(i=0;i<tamano;i++)
  83. {
  84. if(MODA[tamano-1]==B[i])
  85. {
  86. printf("%i - %i\n",A[i],B[i]);
  87. }
  88. }
  89. }
  90. else
  91. if(MODA[tamano-1]!=MODA[tamano-2])
  92. {
  93. printf(".\n");
  94. printf("\n\n\nLas moda y su frecuencia:\n");
  95. for(i=0;i<tamano;i++)
  96. {
  97. if(MODA[tamano-i]==B[i])
  98. {
  99. printf("%i - %i\n",A[i],B[i]);
  100. }
  101. }
  102. }
  103. else
  104. if (temp==tamano)
  105. {
  106. printf("\n\nNO HAY MODA...\n\n"); goto R;
  107. }
  108. }
  109. printf("\n\n\n");
  110. system("PAUSE");
  111. }
Agradecería sus comentarios y gracias por su atención.

Última edición por uriel_bla; 23/10/2015 a las 02:29