이중전위 암호화 프로그래밍인데요~
올해1살
질문 제목 : 대충제가 첨부터 짜긴하는데 초보라 몇가지물어볼게요질문 요약 :이중전위 암호 체계에서 특정 크기의 평문을 m x n 행렬로 변환한 다음
임의의 열과 행의 순열을 입력받아 이를 전위하여 암호문을 생성하고,
또 이를 복호화하는 프로그램을 다음 조건에 따라 작성하시오.
입력 조건 1. 평문
2. m과 n 값
3. 행렬 각각의 순열
출력 조건 1. 평문/암호문/복호문, 각 순열 및 m과 n 값
제출 조건 1. 알고리즘 설명(flow chart 혹은 diagram 혹은
pseudo code)
2. 프로그램 실행 출력(입력,출력)
3. 소스코드
질문 내용 :
#includestdlib.h
#include stdio.h
int main()
{
int i,j=0;
int m,n;
char **b;
int c;
printf(행과열을 입력하세요);
scanf(%d %d,&m,&n);
fflush(stdin);
printf(평문을 입력하세요:);
scanf(%c,&c);
b=(char**)malloc(sizeof(char*)*m);
for(i=0;im;i++)
{
b[i]=(char*)malloc(sizeof(char)*n);
}
for(i=0;im;i++)
{
for(j=0;jn;j++)
b[i][j] = c;
}
for(i=0;im;i++)
{
for(j=0;jn;j++)
printf(%c,b[i][j]);
}
return 0;
}
대충이렇게짯는데 제가원하는바가 두개나아니라서 질문드릴게요~
일단 동적할당이 지금 m*n 만큼되잇는데 제가입력한 평문 이만약 6글자이고 m *n 행렬값을 입력하면 평문만큼 배열에 저장할정도로 동적할당이 되어야되구요. 지금 문자를 입력하는데 asdf 를입력하면 a만 출력이되네요 쉽게 설명좀부탁드려요 ㅜ.ㅜ