我的代码是
#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条件。
答案 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 );
}
}