效果截图:
思路请看以下的代码提示:
void main ()
{
//a b c d...w x y z
//w+4结果是a
//x+4结果是b
//y+4结果是c
//z+4结果是d
//ASCII码+4
char c='a';
printf("a的ASCII加4结果为:%c\n",c+4);
}
占位置 等我想明白了在来回复你 {:5_109:}o o ,这个和数组摸你队列有点像
代码如下
#include<stdio.h>
void main ()
{
//a b c d...w x y z
//w+4结果是a
//x+4结果是b
//y+4结果是c
//z+4结果是d
//ASCII码+4
char c='a';
c=(c-97+4)%(123-97)+97;
printf("a的ASCII加4结果为:%c\n",c);
getchar();
}
比较匆忙,计算式有点粗糙,不过这样应该比较好理解,超出的部分用%计算出来再加回到97上,当不超过1的时候则保持原样 重点就是 c=(c-97+4)%(123-97)+97;这一条
当码没有超过字母范围的时候,取余为自己本身,吵过之后课求得大于97的部分,再加到97上就OK
还有就是你说的字符型的假发是可以的,细枝末节就自己试试就好了啊{:5_109:} 那个是加密文件吧?那也有其它办法的,不过针对你这个问题,你可以写一个条件语句,如果字母大于多少则反减,或者直接转变成前四个字母,总之你把最后的字母倒到前面四个就行,或跳转GOTO,或者FOR语句,或者直接减一个大数!答案仅供参考! %来表示就好了 #include <stdio.h>
int main(void) {
char c = 'w';
printf("%c加四位为%c", c, c >= 'w' ? c - 22 : c + 4);
return 0;
} 你说这个应该是密码学中的凯撒密码吧。
这里面的字母是循环的。
比如
Z + 1 = A
Z + 2 = B
A -1 = Z
B -2 = Z
其他同理, 可以按着这个思路去写写.
页:
[1]