问题遇到的现象和发生背景
输入:
第一行输入五个英文字符,以空格间隔。
第二行输入一个整数t。
输出:
输出加密后的字符,字符之间无需空格间隔。
示例输入:
C h i n a
4
示例输出:
Glmre
'A'加’ ‘和没有加’ ‘有什么区别?
运行结果不一样
用代码块功能插入代码,请勿粘贴截图
正确
#include<stdio.h>
int main(void)
{
int i, t;
char a[5] = { 0,0,0,0,0 };
for (i = 0; i < 5; i++) 、
{
scanf("%c ", &a[i]);
}
scanf("%d", &t);
for (i = 0; i < 5; i++)
{
if (a[i] >= 97)
printf("%c", (a[i] - 'a' + t) % 26 + 'a');
else
printf("%c", (a[i] - 'A' + t) % 26 + 'A');
}
return 0;
}
错误
#include<stdio.h>
int main(void)
{
int i, t;
char a[5] = { 0,0,0,0,0 };
for (i = 0; i < 5; i++)
{
scanf("%c ", &a[i]);
}
scanf("%d", &t);
for (i = 0; i < 5; i++)
//{
//if (a[i] >= 97)
//printf("%c", (a[i] - 'a' + t) % 26 + 'a');
//else
//printf("%c", (a[i] - 'A' + t) % 26 + 'A');
//}
{
if (a[i] >= 97)
printf("%c", (a[i] - a + t) % 26 + a);
else
printf("%c", (a[i] - A + t) % 26 + A);
}
return 0;
}
运行结果及报错内容
其中A加上单引号和没有加上单引号有什么区别