Tema: Dudas con C
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2013, 21:17
valelvn
 
Fecha de Ingreso: junio-2013
Ubicación: Jujuy
Mensajes: 9
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Dudas con C

Hola, estoy empezando a programar en C, y en clases me pidieron hacer un algoritmo que ordene N números naturales generados en forma aleatoria. Tiene que ejecutarse para 1000, 10000 y 100000.

Hice el código, pero tengo un problema, me pide que los números desordenados generados en forma aleatoria se guarden en un archivo de texto...y estuve dándole vueltas al asunto y no lo pude resolver, a ver si alguien me puede dar una mano!!

Si me pueden ayudar se los agradecería. Ah trabajo en un entorno linux, que es una virtualización sobre window.

Acá les dejo el código:

Código C:
Ver original
  1. //Secuencial - OrdenacionSecTp5.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <time.h>
  6.  
  7. /*Declaración de variables globales*/
  8. int64_t MAX=100000;
  9.  
  10. /*Generar datos*/
  11. void CagarDatos(int64_t v[], int64_t N)
  12. {
  13.    int64_t i,j;
  14.    int duplicado;
  15.    int64_t num;
  16.  
  17.    for(i=0; i<N; i++)
  18.   {
  19.      num=1+rand()%N;
  20.      duplicado=0;
  21.      for(j=0; j<=i; j++)
  22.     {
  23.        if(num==v[j])
  24.       {
  25.          duplicado=1;
  26.          break;
  27.       }
  28.     }
  29.     if(duplicado==1)
  30.        i--;
  31.    else
  32.        v[i]=num;
  33.   }
  34. }
  35.  
  36. /*Ordenar Datos de menor a mayor mediante método burbuja*/
  37. void OrdenarDatos(int64_t v[],int64_t N)
  38. {
  39.    int64_t i,j;
  40.    int64_t buffer;
  41.  
  42.    for(i=0; i<N-1; i++)
  43.   {
  44.      for(j=i+1; j<N; j++)
  45.     {
  46.        if(v[i]>v[j])
  47.        {
  48.           buffer=v[j];
  49.           v[j]=v[i];
  50.           v[i]=buffer;
  51.        }
  52.     }
  53.   }
  54. }
  55.  
  56. /*Muestra los datos cargados*/
  57. void MostrarDatos(int64_t v[], int64_t N)
  58. {
  59.    int64_t i;
  60.    printf("\n================================================");
  61.    printf("\nNúmeros cargados:\n ");
  62.    for(i=0; i<N; i++)
  63.      printf("-%ld", v[i]);
  64.  printf("\n=================================================");
  65. }
  66.  
  67. /*Principal*/
  68. int main()
  69. {
  70.    int64_t ordenar[MAX];
  71.    time_t inicio, fin;
  72.  
  73.    srand(time(NULL));
  74.    CagarDatos(ordenar, MAX);
  75.    inicio=time(NULL);
  76.    OrdenarDatos(ordenar, MAX);
  77.    MostrarDatos(ordenar, MAX);
  78.  
  79. /*Finalización*/
  80.    printf("\n==============================================\n");
  81.    printf("La cantidad de datos ordenados es: %ld", MAX);
  82.    fin=time(NULL);
  83.    printf("\nEl programa ha tardado: %.f segundos", difftime(fin,inicio));
  84.    printf("\n=============================================\n\n");
  85.    return 0;
  86. }

Última edición por razpeitia; 21/06/2013 a las 16:57 Razón: detalles