以下C语言程序的这句话中的 if(t/10) 是什么意思啊/
发布网友
发布时间:2023-05-09 20:08
我来回答
共3个回答
热心网友
时间:2024-12-15 05:32
unsigned fun(unsigned w)
{
unsigned t,s=0,s1=1,p=0;
t=w;
while(t>10)
{
if(t/10)//如果t/10大于0
p=t%10;//p等于t的个位数
s=s+p*s1;
//S=S+t的个位数*权,此处的t不一定等于w,因为后面有一句t=t/10,
//如果是第二次运/行到这里,此时,t=w/10,而s1=10,s=s+p*s1,就是s加
//上w的十位数乘以10。举例,如果w=521;第一次这一句是s=0+1*1=1,然后运行后面两句
//S1变成10,t变成52,所以,第二次是s=1+2*10=21;
//没有第三次了,因为运行后面两句后t变成了5,跳出循环,所以返回21
s1=s1*10;//
t=t/10;//
}
return s;
}
热心网友
时间:2024-12-15 05:32
因为 t是整形,所以t/10的结果也是整形。
如果t大于10 ,t/10的值不为0,执行if后面的语句。
s=s+p*s1就是 用当前的s值计算出表达式s+p*s1的值,然后把这个值重新赋给s
热心网友
时间:2024-12-15 05:33
等同于t/10 != 0
把s+p*sq的值赋给s