ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
020_BurbujaBD.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <stdlib.h>
3#include <time.h>
4
5#define N 1000000
6
7int main(int argc, char *argv[])
8{
9 long int n, i, j, k;
10 float X[N], max, min;
11 srand(time(NULL));
12 do{
13 printf("Ingrese el numero de elementos: ");
14 scanf("%ld", &n);
15 }while(n<2||n>N);
16 printf("Ingrese le valor maximo: ");
17 scanf("%f", &max);
18 printf("Ingrese el valor minimo: ");
19 scanf("%f", &min);
20 if(max<min)
21 {
22 max*=min;
23 min=max/min;
24 max/=min;
25 }
26 printf("[%f, %f]\n", min, max);
27 printf("Desordenados.\n");
28 for(i=0; i<n; i++)
29 {
30 X[i] = ((max-min)*rand())/RAND_MAX+min;
31 printf("X[%ld] = %f\n", i+1, X[i]);
32 }
33
34 for (i=0; i<n-1; i++)
35 for(j=(i%2?n-1-(i+1)/2:i/2+1); (i%2?j>i/2:j<(n-i/2)); i%2?j--:j++)
36 {
37 k = i%2?n-(i+1)/2:i/2;
38 if(i%2?X[k]<X[j]:X[k]>X[j])
39 {
40 X[k]*=X[j];
41 X[j]=X[k]/X[j];
42 X[k]/=X[j];
43 }
44 }
45 printf("Ordenados.\n");
46 for(i=0; i<n; i++)
47 printf("X[%ld] = %f\n", i+1, X[i]);
48 return 0;
49}
#define N
#define max
#define min
int main(void)
Definition Ejemplo_035.c:15