C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t;下面是代码,函数fun里的代码我不怎么懂,#include #include

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 10:08:43
C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t;下面是代码,函数fun里的代码我不怎么懂,#include #include

C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t;下面是代码,函数fun里的代码我不怎么懂,#include #include
C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!
高位依旧是高位,低位依旧是低位,然后输出t;
下面是代码,函数fun里的代码我不怎么懂,
#include
#include
#include
void fun(long s,long *t)
{int d;
long s1=1;
*t=0;
while(s>0)
{ d=s%10;
if(d%2!=0)
{*t=d*s1+*t; s1*=10; }
s/=10;
}
}
void main()
{long s,t;
system("CLS");
printf("\nPlease enter s:");
scanf ("%ld",&s);
fun(s,&t);
printf("The result is :%ld\n",t);
}

C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t;下面是代码,函数fun里的代码我不怎么懂,#include #include
void fun(long s,long *t)
{int d;
long s1=1; //表示处理到哪一位的权重,个位是1,十位是10,百位是100,...
*t=0; //结果清零
while(s>0)
{ d=s%10; // 去最低位
if(d%2!=0) // 如果是奇数
{*t=d*s1+*t; // d*s是当前位的加权数,加上已经处理的,就是新的结果
s1*=10; } // s1的权重乘10,得到下一个权重
s/=10; //剩余数据取模,进入下一个循环
}
}