Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- int main(){
- char cislo_pismene, letter1, letter2;
- int a = 0;
- int b = 0;
- char *x;
- char *y;
- int n = 2;
- int m = 2;
- int nejlepsi_posun = 0;
- int pocet_stejnych = 0;
- int nejvic_stejnych = 0;
- x = (char*)malloc(sizeof(char));
- y = (char*)malloc(sizeof(char));
- // nacteni prvniho radku
- while((letter1 = getchar()) != '\n'){
- if(isalpha(letter1) != 0){
- x[a] = letter1;
- ++a;
- x = (char*)realloc(x, n * (sizeof(char)));
- ++n;
- }
- if(isalpha(letter1) == 0 && letter1 != '\n'){
- free(x);
- free(y);
- fprintf(stderr,"Error: Chybny vstup!\n");
- return 100;
- }
- }
- // nacteni druheho radku
- while((letter2 = getchar()) != '\n'){
- if(isalpha(letter2) != 0){
- y[b] = letter2;
- ++b;
- y = (char*)realloc(y, m * (sizeof(char)));
- ++m;
- }
- if(isalpha(letter2) == 0 && letter2 != '\n'){
- free(x);
- free(y);
- fprintf(stderr,"Error: Chybny vstup!\n");
- return 100;
- }
- }
- if(a != b){
- free(x);
- free(y);
- fprintf(stderr,"Error: Chybna delka vstupu");
- return 101;
- }
- for(int posun = 0; posun < 52; ++posun){ // projede pro posun o pocet malych a velkych pismen v abecede tj. 52
- for(int i = 0; i < a; ++i){ // projede pismena v poli z prvniho radku
- cislo_pismene = x[i];
- if((cislo_pismene + posun) > 90 && (cislo_pismene + posun) < 97){ // mezera mezi velkym Z a malym a
- cislo_pismene = cislo_pismene + 6;
- }
- if((cislo_pismene + posun) > 122){ // aby to nevylezlo z pismen
- cislo_pismene = cislo_pismene - 58;
- }
- if((cislo_pismene + posun) == y[i]){ // pokud je pismeno stejny jako v odposlechu tak se da +1 pocet stejnych
- ++pocet_stejnych;
- }
- }
- if(pocet_stejnych > nejvic_stejnych){
- nejlepsi_posun = posun; // pokud je
- nejvic_stejnych = pocet_stejnych;
- }
- }
- for(int i = 0; i < a; ++i){
- cislo_pismene = x[i];
- if((cislo_pismene + nejlepsi_posun) > 90 && (cislo_pismene + nejlepsi_posun) < 97){
- cislo_pismene = cislo_pismene + 6;
- }
- if((cislo_pismene + nejlepsi_posun) > 122){
- cislo_pismene = cislo_pismene - 58;
- }
- printf("%c", cislo_pismene + nejlepsi_posun);
- }
- printf("\n");
- free(x);
- free(y);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement