为什么我的if语句不起作用

时间:2015-12-28 07:31:23

标签: c numbers

我的代码是

#include <stdio.h>
int main()
{
    int n;
    unsigned long int a,x;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%lu",&a);
        int count=0;
        while(a!=0)
        {
            x=a%10;
            printf("x=%lu\n",x );
            if(x!=4||x!=7)
            {
                count++;
            }
            printf("count =%d\n",count );
            a=a/10;
        }
        //printf("%d\n",count );
    }
}

我观察到当x = 4或x = 7计数递增时,它不应该因为我在其中放入了if条件。

2 个答案:

答案 0 :(得分:5)

<table><tr nobr="tr"> <td> <td/> </tr> </table> 条件下将||替换为&&,否则if的结果将始终为x!=4||x!=7
true然后评估x = 4并返回x != 4时,会评估false,评估结果为x != 7

答案 1 :(得分:0)

即使问题得到解答,我也想发布我的答案。未来的观众可能会派上用场。

在if条件中尝试此if(x!=4 && x!=7)

#include <stdio.h>
int main()
{
    int n;
    unsigned long int a,x;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%lu",&a);
        int count=0;
        while(a!=0)
        {
            x=a%10;
            printf("x=%lu\n",x );
            if(x!=4 && x!=7)
            {
            count++;
          }
            printf("count =%d\n",count );
            a=a/10;
        }
        //printf("%d\n",count );
    }
}