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;
}
对了这是判断字符相邻问题 展开
#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;
}
对了这是判断字符相邻问题 展开
展开全部
你这里已经保存到变量里了,所以不需要加引号
没有引号是你输入的三个字符进行比较,加了引号就变成字母a,b,c之间的比较了
没有引号是你输入的三个字符进行比较,加了引号就变成字母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");
展开全部
字符在计算机内存中实际上存的是他的ASCII码值,所以1加上单引号之后的值是'1'的ASCII码值49,而你明显是要判断两个字符是否相邻,相邻的话,ASCII码值的差肯定是1(是整数1,不是字符1('1')),所以不能加单引号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-01-20
展开全部
这里a,b,c本身表示字符的值,如a='x',如果加单引号,则表示字符a,b,c自身。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询