输入: 第一行输入五个英文字符,以空格间隔。 第二行输入一个整数t。 输出: 输出加密后的字符,字符之间无需空格间隔。 示例输入: C h i n a 4

问题遇到的现象和发生背景

输入:
第一行输入五个英文字符,以空格间隔。
第二行输入一个整数t。
输出:
输出加密后的字符,字符之间无需空格间隔。
示例输入:
C h i n a
4
示例输出:
Glmre
'A'加’ ‘和没有加’ ‘有什么区别?
运行结果不一样

用代码块功能插入代码,请勿粘贴截图

正确

#include
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
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加上单引号和没有加上单引号有什么区别

'A',表示是单个英文字符A,是个常量。
A,可能是个变量,或是关键字,像代码里的 i t if,如是未定义的,会报错。