今天在写c语言作业的时候,做到一个这样的题目
输入一个字符,如果输入字符是小写字母(a-z),则程序以大写字母打印; 如果输入字符是大写字母(A-Z),则程序以小写字母打印。 如果字符是数字(0-9),程序将打印其值的平方。
拿到题目的时候,愣了一下,因为%c和%d不可能同时用上 但是随后我发现我忽略了一个重要的事实: 数字0~9在ASCII码中同样也是字符
那么问题便迎刃而解了
char zifu
;
scanf("%c",&zifu
);
值得一提的是之后的平方处理 如果简单地进行对输入的内容平方,则实际上平方的是ASCII码,无法得到实际的答案 譬如:当输入9,输出的则为3249,也就是572
那么我的处理方法则是通过对应关系,进行简单地加减,将ASCII码重新先转化为原数字,再进行计算
代码如下
if(zifu
>=48&&zifu
<=57)
{zifu
=zifu
-48;
printf("%d",zifu
*zifu
);}
用这样的方式,就可以解决这一道题目了