ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo018.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Include dependency graph for Ejemplo018.c:

Go to the source code of this file.

Macros

#define N   1000000

Functions

int main (int argc, char *argv[])

Macro Definition Documentation

◆ N

#define N   1000000

Definition at line 5 of file Ejemplo018.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 7 of file Ejemplo018.c.

8{
9 int i, j, k, n;
10 float max, min, x[N], aux;
11 srand(time(NULL));
12 do{
13 printf("Ingrese el numero de elementos: ");
14 scanf("%d", &n);
15 }while(n<1||n>N);
16 printf("Ingrese el valor maximo: ");
17 scanf("%f", &max);
18 printf("Ingrese el valor minimo: ");
19 scanf("%f", &min);
20 if(min>max)
21 {
22 if(max)
23 {
24 if(min)
25 {
26 min*=max;
27 max=min/max;
28 min/=max;
29 }
30 else
31 {
32 min = max;
33 max = 0;
34 }
35 }
36 else
37 {
38 max = min;
39 min = 0;
40 }
41 }
42 printf("Desordenado.\n");
43 for(i=0; i<n; i++)
44 {
45 x[i] = ((max-min)*rand())/RAND_MAX+min;
46 printf("X[%d] = %f\n", i+1, x[i]);
47 }
48 // Algoritmo de Bidireccional
49 for(i=0; i<n-1; i++)
50 {
51 for(j=(i%2?n-1-i/2:i/2+1);
52 (i%2?j>=(i/2+1):(j<=n-1-i/2));
53 i%2?j--:j++)
54 {
55 if(i%2?(x[i%2?n-i/2-1:i/2]<x[j])
56 :(x[i%2?n-i/2-1:i/2]>x[j]))
57 {
58 aux = x[j];
59 x[j] = x[i%2?n-i/2-1:i/2];
60 x[i%2?n-i/2-1:i/2] = aux;
61 }
62// printf("i=%d\tx[k], k=%d\tj=%d\n", i,
63// i%2?n-i/2-1:i/2, j);
64 }
65 }
66 printf("Ordenado.\n");
67 for(i=0; i<n; i++)
68 printf("X[%d] = %f\n", i+1, x[i]);
69 return 0;
70}
#define N
#define max
#define min