Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Dudas con C

Estas en el tema de Dudas con C en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/06/2013, 21:17
 
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
  #2 (permalink)  
Antiguo 21/06/2013, 05:49
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Dudas con C

Sabes tratar con ficheros?
  #3 (permalink)  
Antiguo 21/06/2013, 11:30
 
Fecha de Ingreso: junio-2013
Ubicación: Jujuy
Mensajes: 9
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Dudas con C

11Hola amchacon, recién estoy empezando, y es la primera vez que veo lo de ficheros
  #4 (permalink)  
Antiguo 21/06/2013, 16:53
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Dudas con C

Lo primero de todo esque aprendas a manejar ficheros: Escribir un texto en un fichero y después leerlo.

Etiquetas: programa, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:31.