|  | 
 
| 
#include <stdio.h>
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  void main()
 {
 char c;
 printf("输入字符:\n");
 while ((c=getchar()) != '\n')                            //从输入获得字符,回车结束
 {
 if ((c >= 'A' && c <= 'Z')||(c >= 'a' && c <= 'z'))      //如果输入A到Z或者a到z,则加4
 {
 c=c+4;
 if ((c > 'Z' && c <= 'Z'+4) || (c > 'z'))        //w,x,y,z特殊情况处理
 {c=c-26;}
 }
 printf("%c",c);                                //输出,如果输入不是字母,直接原样输出
 }
 printf("\n");
 }
 
 
 以上是译文题我写的答案,但是我有个不懂的地方, while ((c=getchar()) != '\n')   这句是输入字符赋值给C直到C=回车。
 那么我输入单个字符给C赋值,条件成立 运行加密过程,当我输入多个字符时    后面的字符应该覆盖掉前面C的值
 为何输出时  却并不是输出最后输入的字符的加密结果,而是所有字符的加密结果。
 程序并没有对C的值储存啊,这是什么机制。我一直弄不懂。
 按照程序运行过程,应该我输入一个字符就给出一个结果,为什么是我输入完所有字符后,才输出结果。
 
 求大神解惑!
 | 
 |