大一新生,课堂布置让我们用现有的知识做,必须要用循环语句(我们现在只学了if、 do while 、switch、 for循环语句)不能用字符数组。我真的被难到了,求指点
代码在下面,具体代码注释应该解释的很详细了
#include <iostream>
#include <stdio.h>
using namespace std;
char ch;
int main()
{
cout << "请输入密码:";
while(~scanf("%c", &ch)) // cin 读不到换行, 所以用 scanf
{
if(ch == '\n') // 因为只输入一行,所以检测到换行就退出
break;
ch -= 3; // 往前移 3 位
if(ch < 'a') // 如果得到的值比 'a' 还小,说明越界了
ch += 26;
/*
往后移 26 位,比如 ch 输入为 'a' 移动了之后是 'a' - 3 (不是字母)
加上 26 后相当于 'a' - 3 + 26 就是 'z' - 3 就是 'x'
这样就可以避免越界的问题
*/
cout << ch;
}
}
#include <iostream>
using namespace std;
int main()
{
char ch;
while (cin.get(ch))
{
if (ch == '\n')
break;
ch = (ch - 'a' - 3 + 26) % 26 + 'a';
cout << ch;
}
return 0;
}