c语言表达式怎么写?

1、设x是一个整数(正负数都可以) ,求x的位数的表达式
2、判断整型变量a和b中必有一个且只有一个为0的表达式

1.

#include <stdio.h>
int main()
{
    int n,count=0;
    scanf("%d",&n);
    int tem=n;
    while(tem)
    {
        tem/=10;
        count++;
    } 
    printf("%d的位数为:%d\n",n,count);
    return 0;
}

2.

#include <stdio.h>
int main()
{
    int a=5,b=6;
    if(a*b==0&&((a!=0)||(b!=0)))
    printf("true\n");
    else
    printf("flase\n");
    return 0;
}

(int)log(abs(x)) + 1
((a*b==0) && (a+b) != 0)