c语言中“switch(c-'2')和switch (c-2)有什么区别?
有个C语言的问题,switch语句中switch(c-'2')和switch(c-2),c为输入的数,这两个有什么区别?测试的答案不同。。。#include<stdio....
有个C语言的问题,switch语句中switch(c-'2')和switch(c-2),c为输入的数,这两个有什么区别?测试的答案不同。。。
#include <stdio.h>
main()
{
int c;
while((c=getchar())!='\n')
{
switch(c-'2')
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
}
}
}
如果用switch(c-'2'),‘输入数字2473时答案为668977,如果用switch(c-2)答案为4695..
请高手给予分析为盼,谢谢。 展开
#include <stdio.h>
main()
{
int c;
while((c=getchar())!='\n')
{
switch(c-'2')
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
}
}
}
如果用switch(c-'2'),‘输入数字2473时答案为668977,如果用switch(c-2)答案为4695..
请高手给予分析为盼,谢谢。 展开
8个回答
展开全部
c - '2' == c - 50,与c - 2差别是明显的。
对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',......‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。
对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
扩展资料:
int型和char型变量相互赋值
整型和字符型是互通的,他们是在内存中存储的本质是相同的,只是存储的范围不同而已,整型可以是2字节,4字节,8字节,而字符型只占1字节。
Int:
标准函数INT(X)其基本功能是得到一个不大于X的最大整数,如INT(3.59)=3,INT(-2.01)=-3。INT函数是一个用途很广的函数,在教学中能有目的的分列其使用技巧。
参考资料来源:百度百科-char (计算机语言关键字)
参考资料来源:百度百科-INT
展开全部
c - '2' == c - 50,与c - 2差别是明显的。
对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',......‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。
对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',......‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。
对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用的getchar,输入的数字就是字符
2473,
当输入2的时候 '2'-'2'=0 则输出case 1和case 2后面的东西, 6 6
当输入4的时候 '4'-'2'=2 则输出case 2的东西 ,8
当输入7的时候 输出default的东西 9
当输入3的时候输出case 1和case2的东西 77
懂没?
2473,
当输入2的时候 '2'-'2'=0 则输出case 1和case 2后面的东西, 6 6
当输入4的时候 '4'-'2'=2 则输出case 2的东西 ,8
当输入7的时候 输出default的东西 9
当输入3的时候输出case 1和case2的东西 77
懂没?
追问
哦,感谢及时回复。
因为我用的是getchar,输入的数字就是字符
当输入2的时候:
c-'2'= '2'-'2'=50-50=0……
c-2='2'-2=50-2=48
我理解的对吗?
追答
对,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-02-12
展开全部
c-'2',意思是 c 减去字符2的ascii码
c-2,意思是 c 减去 数字 2
明白?
c-2,意思是 c 减去 数字 2
明白?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c-2就是c-2,而c-'2'是c-0x32或c-50。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询