C语言字符加减不是要用单引号吗

我用的是DEV-C++#include<stdio.h>#include<stdlib.h>intmain(){chara,b,c;printf("Pleaseinput... 我用的是DEV-C++
#include<stdio.h>
#include <stdlib.h>
int main()
{
char a,b,c;

printf("Please input three char:");
scanf("%c%c%c",&a,&b,&c);

if(b-a==1&&c-b==1){ //这里字符加减应该加单引号啊 为什么加了反而不对
printf("The letters are adjacent with each other.\n");
}
else{
printf("The letters are not adjacent with each other.\n");
}

system("pause");

return 0;
}
对了这是判断字符相邻问题
展开
 我来答
♂凡鸟♂fcb78ab
2013-01-20 · TA获得超过3711个赞
知道小有建树答主
回答量:586
采纳率:100%
帮助的人:605万
展开全部
你这里已经保存到变量里了,所以不需要加引号
没有引号是你输入的三个字符进行比较,加了引号就变成字母a,b,c之间的比较了
追问
能说详细点吗
追答
scanf("%c%c%c",&a,&b,&c);
这句执行之后是你从键盘取得三个字符保存在变量a,b,c中,然后你可以用这三个变量进行判断。
但是如果你在if判断中给它们加了引号就变成字母a,b,c之间的判断了,如果这样不管你输入什么结果都是printf("The letters are adjacent with each other.\n");
百度网友6fe74e2
2013-01-20 · TA获得超过6591个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:225万
展开全部
字符在计算机内存中实际上存的是他的ASCII码值,所以1加上单引号之后的值是'1'的ASCII码值49,而你明显是要判断两个字符是否相邻,相邻的话,ASCII码值的差肯定是1(是整数1,不是字符1('1')),所以不能加单引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-20
展开全部
这里a,b,c本身表示字符的值,如a='x',如果加单引号,则表示字符a,b,c自身。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式