Advertisement
Guest User

dofaka

a guest
May 4th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #define POCET 20
  5.  
  6. int* pocet(int *znaky, int dlzka);
  7. char* histogram(int pocet);
  8.  
  9. int main(void)
  10. {
  11.      int *veta=(int *)calloc(POCET,sizeof(int));
  12.      int *pocty=NULL;
  13.      char *hviezdy=NULL;
  14.      int pocetRealok=1;
  15.      int pocetZnakov=0;
  16.      int i;
  17.      int c;
  18.  
  19.      for(i=0;i<POCET;++i)
  20.      {
  21.           *(veta+i)=0;
  22.      }
  23.  
  24.      while((c=getc(stdin))!='\n')
  25.      {
  26.           ++pocetZnakov;
  27.           if(isalpha(c))
  28.           {
  29.                c=tolower(c);
  30.                *(veta+pocetZnakov-1)=c;
  31.           }
  32.      }
  33.  
  34.      pocty=pocet(veta, pocetZnakov);
  35.  
  36.      for(i=0;i<30;++i)
  37.      {
  38.           hviezdy=histogram(*(pocty+i));
  39.           printf("%c  %d  %s\n",'a'+i,*(pocty+i),hviezdy);
  40.           free(hviezdy);
  41.      }
  42.  
  43.  
  44.      free(veta);
  45.      veta=0;
  46.      free(pocty);
  47.      pocty=0;
  48.      return 0;
  49. }
  50.  
  51. int* pocet(int *znaky, int dlzka)
  52. {
  53.      int *pocty=(int *)calloc(dlzka,sizeof(int));
  54.      int i;
  55.  
  56.      for(i=0;i<dlzka;++i)
  57.      {
  58.           *(pocty+i)=0;
  59.      }
  60.  
  61.      for(i=0;i<dlzka;++i)
  62.      {
  63.           *(pocty+(*(znaky+i)-'a'))+=1;
  64.  
  65.      }
  66.      /*for(i=0;i<26;++i)
  67.      {
  68.           printf("%c %d\n",'a'+i,*(pocty+i));
  69.      }*/
  70.  
  71.  
  72.  
  73.      return pocty;
  74. }
  75.  
  76. char* histogram(int pocet)
  77. {
  78.      int i;
  79.      char *hviezdy=(char *)calloc(pocet+1,sizeof(char));
  80.  
  81.      for(i=0;i<pocet+1;++i)
  82.      {
  83.           *(hviezdy+i)=0;
  84.      }
  85.  
  86.      for(i=0;i<pocet;++i)
  87.      {
  88.           *(hviezdy+i)='*';
  89.      }
  90.      *(hviezdy+i+1)='\0';
  91.  
  92.      return hviezdy;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement