Subversion Repositories svnkaklik

Rev

Rev 408 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
269 kaklik 1
/////////////////////////////////////////////////////////////////
2
// Program spocita pocet malych, velkych pismen a cislic v napsane radce.
3
/////////////////////////////////////////////////////////////////
4
 
5
#include <stdlib.h>
6
#include <stdio.h>
7
 
313 kaklik 8
#define TRUE 1
9
#define FALSE 0
269 kaklik 10
 
313 kaklik 11
int rnd (int max)   // generuje nahodna cela cisla od 0 do zadane hodnoty max.
12
{
13
  return ( (int) (max * (rand()/(RAND_MAX+1.0))));
14
}
287 kaklik 15
 
313 kaklik 16
void init_rnd(void)  // inicializuje generator nahodnych cisel
269 kaklik 17
{
313 kaklik 18
  time_t t;
19
  unsigned int seed;
20
  time(&t);
21
  seed=(unsigned int) t;
22
  srand(seed);
23
}
24
 
25
 
26
int napln_pole(int *adresa,int velikost)  // naplni pole hodnotami
27
{
269 kaklik 28
int i;
313 kaklik 29
  for(i=0;i<velikost;i++) adresa[i]=rnd('Z'-'A'+1)+'A';
269 kaklik 30
}
31
 
287 kaklik 32
int vypis_pole(int *adresa,int velikost,int strana)
269 kaklik 33
{
34
int i;
313 kaklik 35
  if(strana) for(i=0; i<velikost;i++) printf("%c",*(adresa+i));
36
  else  for(i=velikost;i>=0;i--) printf("%c",*(adresa+i));
37
}
38
 
39
int setrid_pole(int *adresa,int velikost)
40
{
41
int pismeno,vetsipismeno;
42
int a,b;
43
 
44
  for(a=0; a<velikost;a++)
45
  {
46
    pismeno = *(adresa+a);
47
 
48
    for(b=a; b<velikost;b++)
49
    {
50
      if (*(adresa+b) > pismeno)
51
      {
52
        vetsipismeno = *(adresa+b);
53
        break;
54
      }
55
    }
56
    adresa[a] = vetsipismeno;
57
    adresa[b] = pismeno;
58
  }
269 kaklik 59
}
60
 
61
int main()
62
{
63
int *pole;
313 kaklik 64
int velikost;
65
 
66
  init_rnd();  
269 kaklik 67
 
68
  printf("Zadejte velikost pole:");
69
  scanf("%d", &velikost);
70
 
71
  pole=(int*)malloc( sizeof(int) * velikost);
287 kaklik 72
  if (NULL==pole) printf("pamet nebyla pridelena");
269 kaklik 73
 
287 kaklik 74
  napln_pole(pole,velikost);
313 kaklik 75
  vypis_pole(pole,velikost,TRUE);
76
  setrid_pole(pole,velikost);
287 kaklik 77
  vypis_pole(pole,velikost,FALSE);
78
 
269 kaklik 79
  free (pole);
80
}