Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 4305 - Oszloponként cserélő kódolás és dekódolás - Bíró: 20 pont
- #include <stdio.h>
- #include <stdlib.h>
- void kodolas(int N, int M, int* order, char* nyers, char* kodolt)
- {
- int i,j,k=0;
- for(i=0;i<M;i++)
- {
- for(j=0;j<N;j++)
- {
- kodolt[k]=nyers[j*M+(order[i]-1)];
- k++;
- }
- }
- kodolt[k]='\0';
- }
- void dekodolas(int N, int M, int* order, char* kodolt, char* dekodolt)
- {
- int i,j,k=0;
- {
- for(i=0;i<M;i++)
- {
- for(j=0;j<N;j++)
- {
- dekodolt[j*M+(order[i]-1)]= kodolt[k];
- k++;
- }
- }
- }
- dekodolt[k]='\0';
- }
- int main()
- {
- FILE *be = fopen("be.txt", "r");
- if(be==NULL)
- {
- printf("Hiba a megnyitasnal!\n");
- return -1;
- }
- int kod,i,l=0,N,M;
- fscanf(be, "%d %d", &kod, &M);
- int *order;
- char *str, *ered;
- str= malloc(200*sizeof(char));
- order= malloc(M*sizeof(int));
- for(i=0;i<M;i++)
- {
- fscanf(be,"%d", &order[i]);
- }
- fscanf(be,"%s", str);
- for(i=0;str[i]!='\0';i++)
- {
- l++;
- }
- N=l/M;
- l++;
- ered= malloc(l*sizeof(char));
- if(kod==1) kodolas(N,M,order,str,ered);
- if(kod==2) dekodolas(N,M,order,str,ered);
- FILE* ki=fopen("ki.txt", "w");
- fprintf(ki,"%s", ered);
- fprintf(ki,"\n");
- free(str);
- free(ered);
- free(order);
- fclose(be);
- fclose(ki);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment