作业帮 > 综合 > 作业

以下C语言程序的这句话中的 if(t/10)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/28 08:29:15
以下C语言程序的这句话中的 if(t/10)
15:第15题 请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回.
unsigned fun(unsigned w)
{
unsigned t,s=0,s1=1,p=0;
t=w;
while(t>10)
{
if(t/10)
p=t%10;
s=s+p*s1;
s1=s1*10;
t=t/10;
}
return s;
}
还有这句 s=s+p*s1我也不知道啥意思,
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;
}