Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int licznik;
- int co;
- int spr[15];
- int g;
- float t_wyniki[10];
- float wynik;
- int licznik;
- int to_multiply();
- int a, i, j, k, z, m, n;
- float liczba_znakow;
- char wybor;
- int main(){
- char **tab2;
- char *tab;
- fpos_t d;
- FILE *file;
- file = fopen("zaszyfrowane.txt", "r");
- if (!file)
- return -1;
- tab = ((char*)malloc(1000 * sizeof(char)));
- if (!tab)
- return -2;
- fseek(file, 0, SEEK_END);
- fgetpos(file, &d);
- fseek(file, 0, 0);
- a = (int)d;
- printf("liczba bitow = %d", a);
- fscanf(file, "%s", tab);
- /* printf("%s", tab);
- printf("\n");*/
- printf("\n");
- tab2 = ((char**)malloc(10 * sizeof(char*))); /**/
- if (!tab2) return -1;
- for (i = 2; i < 11; i++)
- {
- printf("DLUGOSC KLUCZA : %d\n", i);
- for (j = 0; j < i; j++)
- {
- tab2[j] = ((char*)malloc(a*sizeof(char))); if (!tab2) return -1;
- m = 0;
- if (j>0)
- m = j;
- for (k = 0; k < (a / i); k++){
- tab2[j][k] = tab[m];
- m += i;
- }
- /* for (k = 0; k < (a / i); k++){
- printf("%c", tab2[j][k]);
- }*/
- //////////////////////////////////////// start kod
- if (j % 2 == 0) /// sprawdzam czy w tablicy jest parzysta liczba znakow czy nie
- liczba_znakow =(float) k;
- else
- {
- liczba_znakow =(float) k - 1;
- }
- printf("liczba znakow = %.0f\n", liczba_znakow);
- ///////////////////////////////////////////
- g = 0;
- licznik = 0;
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'a')
- g++;
- }
- printf("a = %d\t", g);
- licznik += (g*(g - 1));
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'b')
- g++;
- }
- printf("b = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'c')
- g++;
- }
- printf("c = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'd')
- g++;
- }
- printf("d = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'e')
- g++;
- }
- printf("e = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'f')
- g++;
- }
- printf("f = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'g')
- g++;
- }
- printf("g = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'h')
- g++;
- }
- printf("h = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'i')
- g++;
- }
- printf("i = %d\t", g);
- licznik += g*(g - 1);
- printf("licz= %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'j')
- g++;
- }
- printf("j = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'k')
- g++;
- }
- printf("k = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'l')
- g++;
- }
- printf("l = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'm')
- g++;
- }
- printf("m = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'n')
- g++;
- }
- printf("n = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'o')
- g++;
- }
- printf("o = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'p')
- g++;
- }
- printf("p = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'q')
- g++;
- }
- printf("q = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'r')
- g++;
- }
- printf("r = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 's')
- g++;
- }
- printf("s = %d\t", g);
- licznik += g*(g - 1);
- printf("licz= %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 't')
- g++;
- }
- printf("t = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'u')
- g++;
- }
- printf("u = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'v')
- g++;
- }
- printf("v = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'w')
- g++;
- }
- printf("w = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'x')
- g++;
- }
- printf("x = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'y')
- g++;
- }
- printf("y = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\t", licznik);
- g = 0;
- /////
- for (k = 0; k < liczba_znakow; k++)
- {
- if (tab2[j][k] == 'z')
- g++;
- }
- printf("z = %d\t", g);
- licznik += g*(g - 1);
- printf("licz = %d\n", licznik);
- g = 0;
- /////
- printf("licznik = %d \n\n", licznik);
- wynik = (licznik / ((liczba_znakow)*(liczba_znakow - 1)));
- printf("wynik to %f \n", wynik);
- printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");
- n++;
- t_wyniki[j] = wynik;
- }
- for (z = 0; z < j; z++)
- printf("%d wynik to: %f\n", z + 1, t_wyniki[z]);
- for (z = 0; z < i; z++){
- if ((t_wyniki[z]) <= 0.076 && (t_wyniki[z]) >= 0.054)
- spr[z] = 1;
- else
- spr[z] = 0;
- }
- for (z = 0; z < i; z++)
- {
- printf("w-%d= %d ",z+1, spr[z]);
- }
- for (z = 0; z < i; z++)
- {
- if (spr[z] == 1)
- co += 1;
- }
- printf("\n");
- if (co == i){
- printf("mozliwe ze klucz jest %d literowy\n", i);
- printf("szukac dalej?? y/n\n");
- wybor = getch();
- //scanf("%c", &wybor);
- switch(wybor)
- {
- case 'y':
- break;
- case 'n':
- return 0;
- }
- }
- else
- printf("klucz nie jest %d literowy\n\n", i);
- printf("////////////\n");
- for (j = 0; j < i; j++)
- free(tab2[j]);
- co = 0;
- wybor = NULL;
- }
- free(tab2);
- printf("KONIEC PROGRAMU\n\n\n");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement