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

why my if statement do not work

我的密码是

#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 条件。

if条件中用&&替换||,否则x!=4||x!=7的结果永远是true.
x = 4 然后 x != 4 被评估,它 returns false,然后 x != 7 被评估,其评估为 true.

即使问题得到了回答,我还是想 post 我的答案。可能对未来的观众派上用场。

在你的 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 );
    }
}