Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gusigusa

#1
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.

//PROGRAMA CRISTINA!!//

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int i,f,g,x,p;//Estas variables son usadas en los dos FILE//
int j;//Estas variables son usadas en el apartado de la frecuencia relativa//

int main ()
{
printf ("%4s\n%4s\n%4s\n","**********","CRISTINA","**********");

printf("¿Cuantos numeros quieres que te genere?:   ");
scanf("%d",&x);
printf("¿Cuantos numeros quieres que te genere?:   ");
scanf("%d",&p);

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//
 
srand( time(NULL) );
    for (i=0;i<=x-1;i=i+1)
{
    a[i]=rand();
   
}
 
 FILE *m;
        m= fopen ("mayor.dat","w");
       
for(f=1;f<=x-1;f++) /*En este for, es importante que no se vuelva ha establecer la variable i
                      pues al momento de hacer la cuenta lo confunde y no hace el ordenamiento.*/
        {

for (i=0;i<=x-2;i++)
{



                if (a[i]<a[i+1])
   {
                    g=a[i];
                    a[i]=a[i+1];
                    a[i+1]=g;
               }
}
        }
       
for (i=0;i<=x-1;i++)
           {
fprintf(m,"\n %4d\n",a[i]);
            fprintf(m,"\n");
            b[i]=a[i];
            }  
   
fclose (m); //El primer archivo ya ha sido creado, este tiene un ordenamiento de mayor a menor//              

//Para crear el segundo ordenamiento se puede usar la misma estructura solo se cambia la desigualdad y el nombre interno der archivo//  
FILE *n;
        n= fopen ("menor.dat","w");
       
for(f=1;f<=x-1;f++)
        {

for (i=0;i<=x-2;i++)
{



                if (a[i]>a[i+1])
   {
                    g=a[i];
                    a[i]=a[i+1];
                    a[i+1]=g;
               }
}
        }
       
for (i=0;i<=x-1;i++)
           {
fprintf(n,"\n %4d\n",a[i]);
            fprintf(n,"\n");
            }  
   
fclose (n);    
FILE *t;
t=fopen("frecuencia.dat","w");
for (i=0;i<x;i++){
for(j=1;j<p;j++){
if(a[i]==j){

y=a[i]=a[i]+1;
      }
}

}
for (i=0;i<x;i++){
fprintf(t," %7d",y);

}

fclose(t);

return 0;
}  



· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex