S1E11 大小写转换
为什么我输入数字 大写转小写的时候#include<stdio.h>
int main()
{
char i;
printf("输入一个字符:");
scanf("%d",&i);
if(i>=65&&i<=90)
{
i=i+32;
printf("%c",i);
}
else if(i>=97&&i<=122);
{
i=i-32;
printf("%c",i);
}
return 0;
}大小写字符全部都打印出来了
我知道我写的不规范 但我想这是什么原因 维德 发表于 2020-5-25 00:29
没有 那为啥添个分号就大小写全打印出来了 并且为啥小写转大写还能运行
如果你输入大写,会执行 if 变成 小写。然后再执行下面那个 只有 {} 的,你以为的 else if
如果你输入小写,同样会执行那个,你以为是 else if 的 {}
请学会单步调试。
大小写转换, ^32 他不香嘛。 本帖最后由 赚小钱 于 2020-5-25 00:51 编辑
scanf("%c", &i);
14 行,有一个分号。
你的 IDE 没有提示吗? 赚小钱 发表于 2020-5-24 23:13
printf("%c", &i);
14 行,有一个分号。
没有 那为啥添个分号就大小写全打印出来了 并且为啥小写转大写还能运行 else if(i>=97&&i<=122); 这里多了个分号,这条判断语句就相当于执行一条空语句,
i=i-32;
printf("%c",i); 这两条语句会顺序执行,所以会输出。 用tolower不香吗 xiaosi4081 发表于 2020-5-25 07:30
用tolower不香吗
。。。哥们才学S1E11呀 赚小钱 发表于 2020-5-25 00:54
如果你输入大写,会执行 if 变成 小写。然后再执行下面那个 只有 {} 的,你以为的 else if
如果你输入 ...
嗷嗷应该是明白了 香啊可是俺脑子当时想的是这个:)
页:
[1]