15个回答
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言的赋值语句提交计算机执行时,仅完成赋值操作,计算机不会记录赋值的式子以等式形式在后面的程序中使用,因此,cn=ch+32;这个语句在ch还未赋值的情况下(scanf语句尚未执行)进行计算和赋值,会导致ch中的数据不可预测(Debug情况下其值等于0,exe执行时,要看ch变量位置以前其他程序运行遗留数据的取值了)。
从程序来说,你对ch进行了大写字母的判断,如果是大写并未进行转换计算,仅进行打印一般是不满足题目要求的。
如果ch中存放了大写字母,那么ch减去大写字母A的ASCII码,得到ch原来字母是第几个字母,要转换成相应小写字母,可以加小写字母a的ASCII码。
建议:
char ch;
scanf("%c",&ch); if ( ch>='A' && ch<='Z' ) { ch-='A'; ch+='a'; }
printf("%c\n",ch);
从程序来说,你对ch进行了大写字母的判断,如果是大写并未进行转换计算,仅进行打印一般是不满足题目要求的。
如果ch中存放了大写字母,那么ch减去大写字母A的ASCII码,得到ch原来字母是第几个字母,要转换成相应小写字母,可以加小写字母a的ASCII码。
建议:
char ch;
scanf("%c",&ch); if ( ch>='A' && ch<='Z' ) { ch-='A'; ch+='a'; }
printf("%c\n",ch);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(void)
{
char ch;
scanf("%c",&ch);
if(ch>='A' && ch<='Z')
printf("%c",ch+32);
else
printf("%c",ch);
return 0;
}
scanf("%c",&ch);语句之后不会回溯给cn赋值,而是往下执行;所以你这么写输出的是乱码;
根据c语言的特性,变量分配空间的时候不会清零,所以cn是个残留的垃圾值,在垃圾值上加32也没有意义;
int main(void)
{
char ch;
scanf("%c",&ch);
if(ch>='A' && ch<='Z')
printf("%c",ch+32);
else
printf("%c",ch);
return 0;
}
scanf("%c",&ch);语句之后不会回溯给cn赋值,而是往下执行;所以你这么写输出的是乱码;
根据c语言的特性,变量分配空间的时候不会清零,所以cn是个残留的垃圾值,在垃圾值上加32也没有意义;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询