제 문제는 Eclipse가 제 코드에 어떤 오류가 있는지 보여주지 않고 어쨌든 컴파일하는 것입니다. 그러나 프로그램을 실행할 때 아무 일도 일어나지 않습니다. 나는 심지어 첫 번째 printf 줄을 보지 못했다.Eclipse에서 컴파일 할 때 C의 Cesar Cipher와 관련한 어려움
당신은 카이사르 암호를 사용하여 메시지를 암호화하는 프로그램을 작성하다 : 여기에 좋아
프롬프트입니다. 사용자는 키 값과 암호화 할 메시지의 값 을 입력합니다. 아래의 예제 실행과 프로그램 출력은이 형식을 정확하게 따라야합니다. 사용자 입력은 밑줄이 그어져 있습니다.
3
는 메시지를 암호화 할 입력 :
는 시프트 양 (1-25)를 입력
가, 어서 내 일을합니다.
암호화 된 메시지 : Jr dkhdg, pdnh pb gdb.
내 코드하십시오 char
오버 플로우 수 소문자 ch = ch + k;
와
#include <stdio.h>
#include <ctype.h>
char encrypt(char ch, int k){
if (isalpha(ch)){
if (isupper(ch)) {
ch = ch + k;
if (ch > 'Z') {
ch = ch - k;
ch = ((ch - 65) + k) % 26 + 65;
}
}
else {
ch = ch + k;
if (ch > 'z'){
ch = ch - k;
ch = ((ch - 97) + k) % 26 + 97;
}
}
}
return ch;
}
void main(){
int k = 0;
char ch = 'a';
printf("Enter shift amount (1-25):\n");
scanf("%d ", &k);
printf("Enter message to be encrypted:\n");
ch = getchar();
while(ch != '\n'){
encrypt(&ch, k);
}
printf("\n");
printf("Encrypted message: ");
while(ch != EOF){
putchar(ch);
}
return 0;
}
오늘은 공식적인 카이사르 암호의 날입니까? 이것은 제가 오늘 본 네 번째 또는 다섯 번째 질문입니다! 어쨌든, 디버깅을 배우는 것은 컴퓨터 프로그래밍 행운의 중요한 부분입니다. –
알다시피, 당신은 오직 하나의'char'을 요구합니다. 암호화가 정확하다면 카이사르 - 카이 프르 (chiphre)를 얼마나 자주 사용하든 관계없이 편지가 개행 문자가되지는 않습니다. – Deduplicator