elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / calcular frecuencias de números aleatorios en: 16 Septiembre 2017, 02:30 am
Hola a todo el mundo, he credo el siguiente código en el cual se le pide al usuario cuantos números aleatorios quiere y a partir de estos se les de dos archivos donde el primero los ordene de menor a mayor y el segundo de mayor a menor, después se saque la frecuencia de dichos números, el problema es que al calcular la frecuencia me esta dando puros ceros.

Código
  1. //PROGRAMA CRISTINA!!//
  2.  
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<time.h>
  6.  
  7. int i,f,g,x,p;//Estas variables son usadas en los dos FILE//
  8. int j;//Estas variables son usadas en el apartado de la frecuencia relativa//
  9.  
  10. int main ()
  11. {
  12. printf ("%4s\n%4s\n%4s\n","**********","CRISTINA","**********");
  13.  
  14. printf("¿Cuantos numeros quieres que te genere?:   ");
  15. scanf("%d",&x);
  16. printf("¿Cuantos numeros quieres que te genere?:   ");
  17. scanf("%d",&p);
  18.  
  19. int a[x],b[p], luca[x],r,s,y;//Las variables locales que seran usadas tanto para ordenar los datos como para sacar la frecuencia//
  20.  
  21. srand( time(NULL) );
  22.     for (i=0;i<=x-1;i=i+1)
  23. {
  24.     a[i]=rand();
  25.  
  26. }
  27.  
  28.  FILE *m;
  29.         m= fopen ("mayor.dat","w");
  30.  
  31. for(f=1;f<=x-1;f++) /*En este for, es importante que no se vuelva ha establecer la variable i
  32.                       pues al momento de hacer la cuenta lo confunde y no hace el ordenamiento.*/
  33.         {
  34.  
  35. for (i=0;i<=x-2;i++)
  36. {
  37.  
  38.  
  39.  
  40.                 if (a[i]<a[i+1])
  41.    {
  42.                     g=a[i];
  43.                     a[i]=a[i+1];
  44.                     a[i+1]=g;
  45.                }
  46. }
  47.         }
  48.  
  49. for (i=0;i<=x-1;i++)
  50.            {
  51. fprintf(m,"\n %4d\n",a[i]);
  52.             fprintf(m,"\n");
  53.             b[i]=a[i];
  54.             }  
  55.  
  56. fclose (m); //El primer archivo ya ha sido creado, este tiene un ordenamiento de mayor a menor//              
  57.  
  58. //Para crear el segundo ordenamiento se puede usar la misma estructura solo se cambia la desigualdad y el nombre interno der archivo//  
  59. FILE *n;
  60.         n= fopen ("menor.dat","w");
  61.  
  62. for(f=1;f<=x-1;f++)
  63.         {
  64.  
  65. for (i=0;i<=x-2;i++)
  66. {
  67.  
  68.  
  69.  
  70.                 if (a[i]>a[i+1])
  71.    {
  72.                     g=a[i];
  73.                     a[i]=a[i+1];
  74.                     a[i+1]=g;
  75.                }
  76. }
  77.         }
  78.  
  79. for (i=0;i<=x-1;i++)
  80.            {
  81. fprintf(n,"\n %4d\n",a[i]);
  82.             fprintf(n,"\n");
  83.             }  
  84.  
  85. fclose (n);    
  86. FILE *t;
  87. t=fopen("frecuencia.dat","w");
  88. for (i=0;i<x;i++){
  89. for(j=1;j<p;j++){
  90. if(a[i]==j){
  91.  
  92. y=a[i]=a[i]+1;
  93.       }
  94. }
  95.  
  96. }
  97. for (i=0;i<x;i++){
  98. fprintf(t," %7d",y);
  99.  
  100. }
  101.  
  102. fclose(t);
  103.  
  104. return 0;
  105. }  


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines