为何我的这段代码不能输出感叹号逗号这些?
发布网友
发布时间:2022-12-13 23:38
我来回答
共3个回答
热心网友
时间:2023-06-27 14:58
从ascii表可以看到,英文的“!”对应33,“,"号对应44,你的程序中,c有输出的范围是[64,87]或[96,119]或[86,91]或[118,123]。就是说你输入的字符不符合输出条件,所以没有输出
追问谢谢您,我刚才经过修改已经成功了。
热心网友
时间:2023-06-27 14:58
这是因为逗号的ASCII码是44,感叹号的ASCII码是33,它们都不在
if (c > 64 && c < 87 || c > 96 && c < 119)
printf("%c", c = c + 4);
if (c > 86 && c < 91 || c > 118 && c < 123)
printf("%c", c = c - 22);
的范围之内。
还有,上面的程序会导致有的字母输入一个而有二个字符输出。
应该改为这样:
#include <stdio.h>
main()
{ char c;
while((c=getchar())!='\n')
{ if (c > 64 && c < 87 || c > 96 && c < 119)
c=c + 4;
else if (c > 86 && c < 91 || c > 118 && c < 123)
c= c - 22;
printf("%c",c);
}
}
热心网友
时间:2023-06-27 14:58
你这段代码是要实现什么功能?追问实现将24个英文字母输入后自动改为后面第四个字母,输入的感叹号和逗号空格等不变。我刚才思考了一下,经过修改已经成功了。谢谢您的关注!