로곡 P1071 잠복자 C 언어 문제풀이
#include
#include
#include
typedef struct{
char pre,cur;//
}dic;
int cnt = 0;
char a[101];
char b[101];
char message[101];
int exist(dic book[],char n1,char n2)// , 0,
// 1, 2
{
for(int i = 0;i < cnt;i++)
{
if(book[i].pre == n1)
{
if(book[i].cur == n2)
return 1;
else if(book[i].cur != n2)
return 2;
}
if(book[i].cur == n2)//
{
if(book[i].pre == n1)//
return 1;
else if(book[i].pre != n1)// ,
return 2;
}
}
return 0;
}
void sort(dic book[])//
{
for(int i = 25;i >= 0;i--)
for(int p = 0;p < i;p++)
if(book[p].pre > book[p + 1].pre)
{
dic temp = book[p];
book[p] = book[p + 1];
book[p + 1] = temp;
}
}
void printMessage(dic book[],char message[])
{
int len = strlen(message);
for(int i = 0;i < len;i++)
{
int loc = message[i] - 'A';
printf("%c",book[loc].cur);
}
}
int main()
{
scanf("%s",a);
scanf("%s",b);
scanf("%s",message);
dic book[26];//
int len = strlen(a);
if(len < 26)//
{
printf("Failed
");
return 0;
}
else
{
for(int i = 0;i < len;i++)
{
if(cnt == 0)//
{
book[cnt].pre = a[i];
book[cnt].cur = b[i];
cnt++;
}
else if(exist(book,a[i],b[i]) == 0)//
{
book[i].pre = a[i];
book[i].cur = b[i];
cnt++;
}
else if(exist(book,a[i],b[i]) == 2)// ,
{
printf("Failed
");
return 0;
}
if(cnt == 26)//
break;
}
}
sort(book);
printMessage(book,message);
return 0;
}
선 포맷을 삭제하는 문제는 사고방식에서 생각하기에는 어렵지 않지만 비교적 작은 점을 고려해야 한다. 다음은 여러분에게 설명할 것이다. 이 문제는 구조체 수조로 대응하는 암호 자모와 복호화된 자모를 저장하는 것을 선택했다.유사한 사전 유형은 저장할 때 암호 자모가 같지만 복호화 자모가 다르거나 복호화 자모가 같지만 암호 자모가 다른 경우를 주의해야 한다. 이것은 모두 제목의 요구에 부합되지 않는 일일이 대응하는 원칙으로Failed를 직접 출력하고 프로그램을 끝낼 수 있다.만약 시작된 두 개의 수조가 26개의 자모가 부족하면 마지막에 반드시 자모가 기록되지 않고 바로 튀어나올 수도 있다.이상의 모든 장애를 피한 후에 마침내 암호를 복호화할 수 있게 되었다. 그러나 그 전에 우리는 구조체 수조를 정렬하고 A~Z의 순서에 따라 출력해야 한다. 이렇게 하면 우리가 다시 출력할 때 매우 편리하고 적지 않은 시간을 절약할 수 있다. 이 문제는 거품 정렬을 직접 사용할 수 있고 빠른 배열 같은 조작을 하지 않아도 된다.이후에 비밀번호에 따라 우리가 정리한 사전을 출력할 수 있습니다. 이 문제는 AC를 완성합니다.삭제선 포맷 미끄러졌어요~~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.