c语言中字母能比较大小吗?

发布网友 发布时间:2022-04-22 19:39

我来回答

5个回答

热心网友 时间:2023-08-30 05:18

因为你的c都没定义,再说谁说的你写的程序总输出1,你如果输入汉字,最有可能是输出0。

这个问题暂且不讨论,给你改了:


#include<stdio.h>

void main()

{

int a,b,c;

scanf("%c%c",&a,&c);

b=a<c;

printf("b=%d",b);

}


我说错了吗?他的源程序,没改,是不是没输出1,谁说总输出1的,这都没采纳?

热心网友 时间:2023-08-30 05:19

第一,字母本质上只是ascii码,也是整数,当然可以比大小
第二,scanf("%c",&a);这样的话变量a应该是char型,%c对应char,不要随便乱用
第三,变量c没有赋初值,所以它是一个没有任何意义的垃圾值

热心网友 时间:2023-08-30 05:19

你上面定义的a 和c都是int类型,并不是char类型啊,另外,你只输入了a,并没有输入c啊?那么c代表的是什么呢??

字母是可以比较大小的,实际上比较的是其ASCII码值的大小,例如 'a'的ascii为97 'b'的为98
'a' <'b'.

上面程序可做如下修改:
#include<stdio.h>
void main()
{
int b;
char a,c;
scanf("%c,%c",&a,&c);
b=a<c;
printf("b=%d",b);
}
输入 a,b则输出1
输入 b,a则输出0.
输入的时候,中间有英文逗号追问我只想输入一个字母与已经定义好的字母比较大小。不是两个都要输入

追答已经定义好的,但是也没发现程序中有已经定义好的字符啊??

热心网友 时间:2023-08-30 05:20

1. 你只输入了a没输入c
2 如果是字母,你应该定义为char
3 char比较大小时比较的事他们哥哥的ASCII码
4. a<c是一个逻辑表达式,只有两个结果,真为1,假为0。

热心网友 时间:2023-08-30 05:20

首先有一点可以确定的是你完全不知道C语言是什么

你的a是个int型数据,scanf里面是用%d输入的,你用%c,输入的未必的你输入的数据

其次,a和c作比较,比较结果是返回真和假,真是1 ,假是0,你把这个结果赋值给b,b不是0就是1。

至于对不对,你可以输出a和c的值看看多少?
printf("a=%d,c=%d\n",a,c);追问确实不知道。。。。今天才看书。。不过还是非常感谢。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com