Advertisement
hocikto19

7.cviko ZPRPR2

Apr 1st, 2014
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.54 KB | None | 0 0
  1. //1.priklad
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5. #define ABC ('Z' - 'A' +1)
  6.  
  7. void vynuluj(int *buf, int n);
  8.  
  9. int main(){
  10.     int histogram[ABC], i, j, index[ABC], max, *indexOfPismeno;
  11.     char slovo[100];
  12.     while (scanf("%s", slovo) != EOF){
  13.         vynuluj(histogram, ABC);
  14.         vynuluj(index, ABC);
  15.         i = j = max = 0;
  16.         while (slovo[i] != '\0')
  17.             histogram[(tolower(slovo[i++])) - 'a']++;
  18.         for (i = 0; i < ABC; i++){
  19.             if (histogram[i]>max){
  20.                 max = histogram[i];
  21.             }
  22.         }
  23.         for (i = 0; i < ABC; i++){
  24.             if (max == histogram[i]){
  25.                 index[j] = i;
  26.                 j++;
  27.             }
  28.         }
  29.         if (j > 0){
  30.             indexOfPismeno = (strrchr(slovo, index[0] + 'a'));
  31.             for (i = 1; i < j; i++){
  32.                 if ((strrchr(slovo, index[i] + 'a'))>indexOfPismeno)
  33.                     indexOfPismeno = (strrchr(slovo, index[i] + 'a'));
  34.             }
  35.         }
  36.         printf("%c %d\n", *indexOfPismeno, max);
  37.     }
  38.     return 0;
  39. }
  40.  
  41. void vynuluj(int *buf, int n){
  42.     int i;
  43.     for (i = 0; i < n; i++)
  44.         buf[i] = 0;
  45. }
  46.  
  47. //2.priklad
  48. #include <stdio.h>
  49. #include <stdlib.h>
  50.  
  51. int main(){
  52.     int n, *pole, suma, i=0, j=0, k, pomsuma, def = -1, defi = -1;
  53.     scanf("%d", &n);
  54.     pole = (int*)malloc(n*sizeof(int));
  55.     for (i = 0; i < n; i++){
  56.         scanf("%d", (pole + i));
  57.     }
  58.     scanf("%d", &suma);
  59.     i = 0;
  60.     while(i<n){
  61.         pomsuma = 0;
  62.         for (k = j; k <= i; k++)
  63.             pomsuma += (*(pole + k));
  64.         if (i== n-1){
  65.             j++;
  66.             i = j;
  67.             continue;
  68.         }
  69.         if (pomsuma == suma){
  70.             if (def != -1){
  71.                 def = (def < i - j) ? def : i - j;
  72.                 defi = (def == i - j) ? j : defi;
  73.             }
  74.             else{
  75.                 def = i - j;
  76.                 defi = j;
  77.             }
  78.         }
  79.         i++;
  80.     }
  81.     if (defi == -1)
  82.         printf("Hladana podpostupnost v poli neexistuje\n");
  83.     else{
  84.         for (i = defi; i <= defi + def; i++)
  85.             printf("%d ", pole[i]);
  86.         putchar('\n');
  87.     }
  88.     return 0;
  89. }
  90.  
  91. //3.priklad
  92. #include <stdio.h>
  93. #include <stdlib.h>
  94.  
  95. int main(){
  96.     int n, *pole, suma, i=0, j=0, k, pomsuma, def = -1, defi = -1;
  97.     scanf("%d", &n);
  98.     pole = (int*)malloc(n*sizeof(int));
  99.     for (i = 0; i < n; i++){
  100.         scanf("%d", (pole + i));
  101.     }
  102.     scanf("%d", &suma);
  103.     i = 0;
  104.     while(i<n){
  105.         pomsuma = 0;
  106.         for (k = j; k <= i; k++)
  107.             pomsuma += (*(pole + k));
  108.         if (i== n-1){
  109.             j++;
  110.             i = j;
  111.             continue;
  112.         }
  113.         if (pomsuma == suma){
  114.             if (def != -1){
  115.                 def = (def > i - j) ? def : i - j;
  116.                 defi = (def == i - j) ? j : defi;
  117.             }
  118.             else{
  119.                 def = i - j;
  120.                 defi = j;
  121.             }
  122.         }
  123.         i++;
  124.     }
  125.     if (defi == -1)
  126.         printf("Hladana podpostupnost v poli neexistuje\n");
  127.     else{
  128.         for (i = defi; i <= defi + def; i++)
  129.             printf("%d ", pole[i]);
  130.         putchar('\n');
  131.     }
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement