假设我有
int n=123456;
int x,y=0;
Run Code Online (Sandbox Code Playgroud)
如何将整数"n"拆分为两半.
注意:总的位数n总是2的倍数,例如 1234,4567,234567,35621等...都有2,4,6,8位数.我想将它们分成两半.
我正在尝试使用以下代码,但它不起作用,y变量以某种方式保持反转的第二部分.
int x, y=0, len, digit;
int n=123456;
len=floor(log10(abs(n))) + 1;
x=n;
while((floor(log10(abs(x))) + 1)>len/2)
{
digit=x%10;
x=x/10;
y=(y*10)+digit;
}
printf("First Half = %d",x);
printf("\nSecond Half = %d",y);
Run Code Online (Sandbox Code Playgroud)
当输入是:
N = 123456;
输出我得到:
上半场= 123
下半场= 654
我想要的输出:
上半场:123
下半场:456