|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
char c;
scanf_s("%c", &c);
for (; 'a' <= c <= 'Z';)
{
if (c >= 'w')
{
c = c - 22;
break;
}
c = c + 4;
break;
}
c = putchar(c);
这个没有设置大写的A到Z 但打出A仍然可以得到E
但打出z得不到a
求解
- #include <stdio.h>
- int main()
- {
- char c;
- scanf_s("%c", &c);
- //循环结束条件错误 'a' 的 ASCII码是 97 'Z'的ASCII 是 90
- // 'a' <= c <= 'Z' 先判断 'a' <= c 这个表达式结果为0 或者 1
- //而 不管是 0 还是 1,永远小于 90 ,所以这是个死循环。
- for (; 'a' <= c <= 'Z';)
- {
- //满足 c >= 'w' 则执行 c = c-22,也就是说 w,x,y,z 变成了 a,b,c,d
- if (c >= 'w')
- {
- c = c - 22;
- break;
- }
- //当 c < 'w' 时, 执行 c= c+ 4 ,总之,不知道程序想干什么。
- c = c + 4;
- break;
- }
- c = putchar(c);
复制代码
|
|