编写程序,打印所有含有数字6且能被3整除的3位自然数。
正确代码:
#include<stdio.h>
int main(void){
int i,count=0;
for(i=100;i<=999;i++){
if((i%10==6||(i/10)%10==6||i/100==6)&&i%3==0){
printf("%5d",i);count++;
if(count==5){
printf("\n");count=0;
}
}
}
return 0;
}
错误代码:
#include<stdio.h>
int main(void){
int i,count=0;
for(i=100;i<=999;i++){
if(i%10==6||(i/10)%10==6||i/100==6&&i%3==0){
printf("%5d",i);count++;
if(count==5){
printf("\n");count=0;
}
}
}
return 0;
}
错误之处:在条件判断部分,使用了逻辑与运算符(&&
)将两个条件连接起来,但是由于优先级的关系,&&
的优先级高于||运算符。所以在代码中,i/100==6&&i%3==0
的部分会先于其他条件进行判断。