为什么我的 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 );
}
}
我的密码是
#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 );
}
}