菜鸟向大佬们请教[C] 纯文本查看 复制代码 #include<stdio.h>
void ming_to_mi(char ming[],int count);
void mi_to_ming(char mi[], int count);
int main(){
int i, count;
char ming[15],mi[15];
for(i = 0; i < 2; i++){
if(i == 0){
printf("请输入需要加密的明文:");
gets(ming);
printf("请输入加密的偏移量:");
scanf("%d",&count);
printf("\n明文是:%s",ming);
ming_to_mi(ming,count);
}else if(i == 1) {
char flag[1];
printf("\n是否要进行解密算法?(y/n)");
scanf("%s",flag);
if(flag[0] == 'y'){
printf("----------解密算法----------\n");
printf("请输入已知的密文为:");
scanf("%s",mi);
gets(mi);
printf("请输入加密时的偏移量:");
scanf("%d",&count);
printf("\n密文是:%s",mi);
mi_to_ming(mi,count);
}else
break;
}
}
}
void ming_to_mi(char ming[], int count){
char mi[15];
int i;
for(i = 0; i < 15; i++){
if(ming[i]){
if(ming[i] == ' ')
mi[i] = ' ';
else
mi[i] = ming[i]+count;
}
else
break;
}
printf("\n转换后的密文是:%s",mi);
}
void mi_to_ming(char mi[], int count){
char ming[15];
int i;
for(i = 0; i < 15; i++){
if(mi[i]){
if(mi[i] == ' ')
ming[i] = ' ';
else
ming[i] = mi[i]-count;
}else
break;
}
printf("\n原文是:%s",ming);
}
求凯撒密码的问题,为什么我的第二轮循环的gets()没有,被调用啊??直接就让我输偏移量?
我可以用scanf("%s",mi)输入,但是用gets(mi)就不行。 |