C程序中出现乱码的问题

以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值, 得到第一个新的字符,
第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的字符, 以此类推一直处理到最后
第二个字符, 最后一个字符的ASCII值加原第一个字符的ASCII值, 得到最后一个新的字符, 得到
的新字符分别存放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新存入字符
串数组xx中。
#include"stdio.h"
#include"string.h"
#include"ctype.h"
char xx[4][80]={"how are you","what is we can learn","i guest i will","tiy dka"};
int maxline=4;
void sp(void)
{
int i,j;
char t;
for(i=0;i<maxline;i++)
{
t=xx[i][0];
for(j=0;j<strlen(xx[i])-1;j++)
xx[i][j]=xx[i][j]+xx[i][j+1];
xx[i][j]=xx[i][j]+t;
}
}
void main()
{
int i;
sp();
for(i=0;i<4;i++)
printf("%s\n",xx[i]);
}
调试没有错误,但运行结果却是乱码:
祖梺幼厵桎?
呱谂壾摋軈兡蠋屟朴噱
墖苴冂攭墬嗾卣
葩檮咸?
Press any key to continue
问为什么?如何解决这个问题/

两个ASCII码相加,通常得到的值会超过标准的(7 bit)ASCII编码值,所以看到的是乱码 -- 答案是正确的,但没有英文单字节字体定义。
温馨提示:答案为网友推荐,仅供参考
相似回答