Advertisement
poczatkujacykoder

Untitled

Oct 22nd, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int licznik;
  5. int co;
  6. int spr[15];
  7. int g;
  8. float t_wyniki[10];
  9. float wynik;
  10. int licznik;
  11. int to_multiply();
  12. int a, i, j, k, z, m, n;
  13. float liczba_znakow;
  14.  
  15. int main(){
  16.  
  17.    
  18.  
  19.     char **tab2;
  20.     char *tab;
  21.  
  22.     fpos_t d;
  23.     FILE *file;
  24.     file = fopen("zaszyfrowane.txt", "r");
  25.     if (!file)
  26.         return -1;
  27.  
  28.     tab = ((char*)malloc(1000 * sizeof(char)));
  29.     if (!tab)
  30.         return -2;
  31.  
  32.     fseek(file, 0, SEEK_END);
  33.     fgetpos(file, &d);
  34.     fseek(file, 0, 0);
  35.     a = (int)d;
  36.  
  37.     printf("liczba bitow = %d", a);
  38.     printf("\n");
  39.     fscanf(file, "%s", tab);
  40.  
  41.     printf("%s", tab);
  42.     printf("\n");
  43.     printf("\n");
  44.    
  45.     tab2 = ((char**)malloc(10 * sizeof(char*))); /**/
  46.     if (!tab2) return -1;
  47.  
  48.     for (i = 2; i < 5; i++){
  49.         for (j = 0; j < i; j++){
  50.             tab2[j] = ((char*)malloc(a*sizeof(char))); if (!tab2) return -1;
  51.  
  52.             m = 0;
  53.             if (j>0)
  54.                 m = j;
  55.             for (k = 0; k < (a / i); k++){
  56.                 tab2[j][k] = tab[m];
  57.                 m += i;
  58.             }
  59.  
  60.             printf("tab nr : %d \n", i - 1);
  61.             for (k = 0; k < (a / i); k++){
  62.    
  63.                 printf("%c", tab2[j][k]);
  64.             }
  65.             printf("\n\n");
  66.  
  67.             //////////////////////////////////////// start kod
  68.             if (j % 2 == 0) /// sprawdzam czy w tablicy jest parzysta liczba znakow czy nie
  69.                 liczba_znakow =(float) k;
  70.             else
  71.             {
  72.                 liczba_znakow =(float) k - 1;
  73.             }
  74.  
  75.             printf("liczba znakow = %d\n", liczba_znakow);
  76.  
  77.  
  78.  
  79.             ///////////////////////////////////////////
  80.             g = 0;
  81.             for (k = 0; k < liczba_znakow; k++)
  82.             {
  83.                 if (tab2[j][k] == 'a')
  84.                     g++;
  85.         printf("liczba liter a = %d\t", g);
  86.             licznik = (g*(g - 1));
  87.             printf("aktualnie licznik = %d\n", licznik);
  88.             g = 0;
  89.             /////
  90.  
  91.  
  92.             for (k = 0; k < liczba_znakow; k++)
  93.             {
  94.                 if (tab2[j][k] == 'b')
  95.                     g++;
  96.             }
  97.             printf("liczba liter b = %d\t", g);
  98.             licznik += g*(g - 1);
  99.             printf("aktualnie licznik = %d\n", licznik);
  100.             g = 0;
  101.             /////
  102.             for (k = 0; k < liczba_znakow; k++)
  103.             {
  104.                 if (tab2[j][k] == 'c')
  105.                     g++;
  106.             }
  107.             printf("liczba liter c = %d\t", g);
  108.             licznik += g*(g - 1);
  109.             printf("aktualnie licznik = %d\n", licznik);
  110.             g = 0;
  111.             /////
  112.             for (k = 0; k < liczba_znakow; k++)
  113.             {
  114.                 if (tab2[j][k] == 'd')
  115.                     g++;
  116.             }
  117.             printf("liczba liter d = %d\t", g);
  118.             licznik += g*(g - 1);
  119.             printf("aktualnie licznik = %d\n", licznik);
  120.             g = 0;
  121.             /////
  122.  
  123.  
  124.             for (k = 0; k < liczba_znakow; k++)
  125.             {
  126.                 if (tab2[j][k] == 'e')
  127.                     g++;
  128.             }
  129.             printf("liczba liter e = %d\t", g);
  130.             licznik += g*(g - 1);
  131.             printf("aktualnie licznik = %d\n", licznik);
  132.             g = 0;
  133.             /////
  134.             for (k = 0; k < liczba_znakow; k++)
  135.             {
  136.                 if (tab2[j][k] == 'f')
  137.                     g++;
  138.             }
  139.             printf("liczba liter f = %d\t", g);
  140.             licznik += g*(g - 1);
  141.             printf("aktualnie licznik = %d\n", licznik);
  142.             g = 0;
  143.             /////
  144.  
  145.             for (k = 0; k < liczba_znakow; k++)
  146.             {
  147.                 if (tab2[j][k] == 'g')
  148.                     g++;
  149.             }
  150.             printf("liczba liter g = %d\t", g);
  151.             licznik += g*(g - 1);
  152.             printf("aktualnie licznik = %d\n", licznik);
  153.             g = 0;
  154.             /////
  155.             for (k = 0; k < liczba_znakow; k++)
  156.             {
  157.                 if (tab2[j][k] == 'h')
  158.                     g++;
  159.             }
  160.             printf("liczba liter h = %d\t", g);
  161.             licznik += g*(g - 1);
  162.             printf("aktualnie licznik = %d\n", licznik);
  163.             g = 0;
  164.             /////
  165.             for (k = 0; k < liczba_znakow; k++)
  166.             {
  167.                 if (tab2[j][k] == 'i')
  168.                     g++;
  169.             }
  170.             printf("liczba liter i = %d\t", g);
  171.             licznik += g*(g - 1);
  172.             printf("aktualnie licznik = %d\n", licznik);
  173.             g = 0;
  174.             /////
  175.  
  176.  
  177.             for (k = 0; k < liczba_znakow; k++)
  178.             {
  179.                 if (tab2[j][k] == 'j')
  180.                     g++;
  181.             }
  182.             printf("liczba liter j = %d\t", g);
  183.             licznik += g*(g - 1);
  184.             printf("aktualnie licznik = %d\n", licznik);
  185.             g = 0;
  186.             /////
  187.             for (k = 0; k < liczba_znakow; k++)
  188.             {
  189.                 if (tab2[j][k] == 'k')
  190.                     g++;
  191.             }
  192.             printf("liczba liter k = %d\t", g);
  193.             licznik += g*(g - 1);
  194.             printf("aktualnie licznik = %d\n", licznik);
  195.             g = 0;
  196.             /////
  197.             for (k = 0; k < liczba_znakow; k++)
  198.             {
  199.                 if (tab2[j][k] == 'l')
  200.                     g++;
  201.             }
  202.             printf("liczba liter l = %d\t", g);
  203.             licznik += g*(g - 1);
  204.             printf("aktualnie licznik = %d\n", licznik);
  205.             g = 0;
  206.             /////
  207.             for (k = 0; k < liczba_znakow; k++)
  208.             {
  209.                 if (tab2[j][k] == 'm')
  210.                     g++;
  211.             }
  212.             printf("liczba liter m = %d\t", g);
  213.             licznik += g*(g - 1);
  214.             printf("aktualnie licznik = %d\n", licznik);
  215.             g = 0;
  216.             /////
  217.  
  218.  
  219.             for (k = 0; k < liczba_znakow; k++)
  220.             {
  221.                 if (tab2[j][k] == 'n')
  222.                     g++;
  223.             }
  224.             printf("liczba liter n = %d\t", g);
  225.             licznik += g*(g - 1);
  226.             printf("aktualnie licznik = %d\n", licznik);
  227.             g = 0;
  228.             /////
  229.             for (k = 0; k < liczba_znakow; k++)
  230.             {
  231.                 if (tab2[j][k] == 'o')
  232.                     g++;
  233.             }
  234.             printf("liczba liter o = %d\t", g);
  235.             licznik += g*(g - 1);
  236.             printf("aktualnie licznik = %d\n", licznik);
  237.             g = 0;
  238.             /////
  239.  
  240.             for (k = 0; k < liczba_znakow; k++)
  241.             {
  242.                 if (tab2[j][k] == 'p')
  243.                     g++;
  244.             }
  245.             printf("liczba liter p = %d\t", g);
  246.             licznik += g*(g - 1);
  247.             printf("aktualnie licznik = %d\n", licznik);
  248.             g = 0;
  249.             /////
  250.             for (k = 0; k < liczba_znakow; k++)
  251.             {
  252.                 if (tab2[j][k] == 'q')
  253.                     g++;
  254.             }
  255.             printf("liczba liter q = %d\t", g);
  256.             licznik += g*(g - 1);
  257.             printf("aktualnie licznik = %d\n", licznik);
  258.             g = 0;
  259.             /////
  260.             for (k = 0; k < liczba_znakow; k++)
  261.             {
  262.                 if (tab2[j][k] == 'r')
  263.                     g++;
  264.             }
  265.             printf("liczba liter r = %d\t", g);
  266.             licznik += g*(g - 1);
  267.             printf("aktualnie licznik = %d\n", licznik);
  268.             g = 0;
  269.             /////
  270.  
  271.  
  272.             for (k = 0; k < liczba_znakow; k++)
  273.             {
  274.                 if (tab2[j][k] == 's')
  275.                     g++;
  276.             }
  277.             printf("liczba liter s = %d\t", g);
  278.             licznik += g*(g - 1);
  279.             printf("aktualnie licznik = %d\n", licznik);
  280.             g = 0;
  281.             /////
  282.             for (k = 0; k < liczba_znakow; k++)
  283.             {
  284.                 if (tab2[j][k] == 't')
  285.                     g++;
  286.             }
  287.             printf("liczba liter t = %d\t", g);
  288.             licznik += g*(g - 1);
  289.             printf("aktualnie licznik = %d\n", licznik);
  290.             g = 0;
  291.             /////
  292.             for (k = 0; k < liczba_znakow; k++)
  293.             {
  294.                 if (tab2[j][k] == 'u')
  295.                     g++;
  296.             }
  297.             printf("liczba liter u = %d\t", g);
  298.             licznik += g*(g - 1);
  299.             printf("aktualnie licznik = %d\n", licznik);
  300.             g = 0;
  301.             /////
  302.             for (k = 0; k < liczba_znakow; k++)
  303.             {
  304.                 if (tab2[j][k] == 'v')
  305.                     g++;
  306.             }
  307.             printf("liczba liter v = %d\t", g);
  308.             licznik += g*(g - 1);
  309.             printf("aktualnie licznik = %d\n", licznik);
  310.             g = 0;
  311.             /////
  312.             for (k = 0; k < liczba_znakow; k++)
  313.             {
  314.                 if (tab2[j][k] == 'w')
  315.                     g++;
  316.             }
  317.             printf("liczba liter w = %d\t", g);
  318.             licznik += g*(g - 1);
  319.             printf("aktualnie licznik = %d\n", licznik);
  320.             g = 0;
  321.             /////
  322.  
  323.  
  324.             for (k = 0; k < liczba_znakow; k++)
  325.             {
  326.                 if (tab2[j][k] == 'x')
  327.                     g++;
  328.             }
  329.             printf("liczba liter x = %d\t", g);
  330.             licznik += g*(g - 1);
  331.             printf("aktualnie licznik = %d\n", licznik);
  332.             g = 0;
  333.             /////
  334.             for (k = 0; k < liczba_znakow; k++)
  335.             {
  336.                 if (tab2[j][k] == 'y')
  337.                     g++;
  338.             }
  339.             printf("liczba liter y = %d\t", g);
  340.             licznik += g*(g - 1);
  341.             printf("aktualnie licznik = %d\n", licznik);
  342.             g = 0;
  343.             /////
  344.             for (k = 0; k < liczba_znakow; k++)
  345.             {
  346.                 if (tab2[j][k] == 'z')
  347.                     g++;
  348.             }
  349.             printf("liczba liter z = %d\t", g);
  350.             licznik += g*(g - 1);
  351.             printf("aktualnie licznik = %d\n", licznik);
  352.             g = 0;
  353.             /////
  354.             printf("licznik = %d \n\n", licznik);
  355.  
  356.  
  357.  
  358.  
  359.             wynik = (licznik / ((liczba_znakow)*(liczba_znakow - 1)));
  360.  
  361.             printf("wynik to %f ", wynik);
  362.  
  363.  
  364.  
  365.  
  366.             printf("\n\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");
  367.             n++;
  368.             t_wyniki[j] = wynik;
  369.  
  370.  
  371.        
  372.  
  373.         for (z = 0; z < i; z++){
  374.             printf("%d wynik to: %f\n", z, t_wyniki[z]);
  375.  
  376.         }
  377.  
  378.         for (z = 0; z < i; z++){
  379.  
  380.             if ((t_wyniki[z]) <= 0.075 && (t_wyniki[z]) >= 0.055)
  381.                 spr[z] = 1;
  382.             else
  383.                 spr[z] = 0;
  384.         }
  385.  
  386.         for (z = 0; z < i; z++){
  387.             printf("%d\t", spr[z]);
  388.         }
  389.  
  390.  
  391.         for (z = 0; z < i; z++){
  392.             if (spr[z] == 1)
  393.                 co += 1;
  394.         }
  395.         printf("\n");
  396.         if (co == i){
  397.             printf("klucz jest %d literowy\n", i);
  398.             system("pause");
  399.             return 0;
  400.         }
  401.         else
  402.             printf("klucz nie jest %d literowy\n\n", i);
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.         }
  427.         printf("\n\n////////////\n\n");
  428.         for (j = 0; j < i; j++)
  429.             free(tab2[j]);
  430.     }
  431.  
  432.     free(tab2);
  433.     system("pause");
  434.     return 0;
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement