#include <stdio.h>
int main()
{
int a,b,c;
puts("请输入三个数。");
scanf("%d%d%d,&a,&b,&c");
if (a==b==c)
printf("有3个数相等");
else if(a==b || a==c || b==c)
printf("有2个数相等");
else
printf("三数各不相等");
return 0;
}
为何 输入数字后printf无法作用
不要写a==b==c,c语言不支持连等,除非你3个数不是0就是1
我当初也这么错了
scanf()写错了,引号括在格式说明符周围
正确的是:
scanf("%d%d%d", &a, &b, &c);
而且3数相等需要
if ((a == b) && (b == c))
连在一起会出错,因为
(a==b==c)
其实是
((a==b) == c)
程序会先判断(a==b),然后得到一个布尔值(0或1)和c比较:
(布尔值==c)
所以会出现错误结果
C语言不支持连等,应该改成这样
if ((a==b)&&(b==c)&&(a==c))
为了避免优先级问题,最好给上括号
else if((a==b)||(a==c) || (b==c))