回 帖 发 新 帖 刷新版面

主题:[讨论]C的语法问题,请各位帮我看一下,谢谢!

求一个数能否被3和5整除
void main()
{
 int a;
 printf("input A: \n");
 scanf("%d",&a);
 if ((a%3==0)&&(a%5==0)) printf("Yes");
 else printf("No");
}

问题1:为什么不加else在输入225的时候会打错出YesNO.
问题2:按照C运算符的先后级,if后面的逻辑表达式外面不用加括号的,但不加的话IDE报错,为什么?

回复列表 (共2个回复)

沙发

if 后如果不加大括号,则其后面的第一条语句是它的作用域。
当把else去掉后,255符合条件,所以输出Yes,然后程序继续向下执行再输出No。

if (a%3==0&&a%5==0)  根据运算符的优先级是没有错误的。也许是你编译器的原因。

板凳


呵呵,非常感谢,你这么一说我就知道了!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册