???
#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);
页:
[1]