ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
021_Conteno.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 int n, min, max, X[N], i, j, rg;
10 do{
11 printf("Ingrese el numero de elementos: ");
12 scanf("%d", &n);
13 }while(n<1||n>N);
14 printf("Ingrese el valor maximo: ");
15 scanf("%d", &max);
16 printf("Ingrese el valor minimo: ");
17 scanf("%d", &min);
18 if(min>max)
19 {
20 max^=min;
21 min^=max;
22 max^=min;
23 }
24 rg = max-min;
25 srand(time(NULL));
26 for(i=0; i<n; i++)
27 X[i] = (rand()%(max-min+1))+min;
28 printf("Desordenado.\n");
29 for(i=0; i<n; i++)
30 printf("X[%d] = %d\n", i+1, X[i]);
31 int h[rg+1];
32 for(i=0; i<rg+1; i++)
33 h[i] = 0;
34 for(i=0; i<n; i++)
35 h[X[i]-min]++;
36 printf("Histograma\n");
37 for(i=0; i<rg+1; i++)
38 printf("h[%d] = %d\n", min+i, h[i]);
39 for(i=0, j=0; i<n; )
40 {
41 while(!h[j])
42 j++;
43 while(h[j])
44 {
45 h[j]--;
46 X[i++] = j+min;
47 }
48 }
49
50 printf("Ordenado.\n");
51 for(i=0; i<n; i++)
52 printf("X[%d] = %d\n", i+1, X[i]);
53 return 0;
54}
#define N
#define max
#define min
int main(void)
Definition Ejemplo_035.c:15