c语言求解,不太理解

从键盘上输入两个两位的正整数a和b,要求将a和b合并形成一个整数放在 c中,合并的方式为:将a数的十位和个位依次放在c数的十位和千位上,b数的十位和个位依次放在c数的百位和个位上。例如,当 a=45,b=12 时,c 数中
应该存放 5142。

我的思路是:
首先,从输入获取两个正整数a,b
然后,把a和b的个位和十位分解乘以相应进制,把计算形成的千位,百位,十位,个位加起来就是c的值。
最后,打印c的值


#include <stdio.h>

int main(void){
    
    int a,b,c;
    
    printf("请输入两个正整数:\n");
    scanf("%d %d",&a,&b);
    
    if(a<10||a>100){
        printf("第一个数不是两位数!\n");
        return -1;
    }
    
    if(b<10||b>100){
        printf("第二个数不是两位数!\n");
        return -1;
    }
    
    int Kilobit = a % 10 * 1000;   
    int Hundredth = b/10%10 * 100;
    int ten = a/10%10 * 10;
    int one = b %10;
    
    c =   Kilobit +  Hundredth + ten + one;
    
    printf("c=%d\n",c);
     
    
} 

img

用求余分解数字,然后按要求乘上10的倍数相加

从键盘上输入两个两位的正整数a和b,要求将a和b合并形成一个整数放在 c中,合并的方式为:将a数的十位和个位依次放在c数的十位和千位上,b数的十位和个位依次放在c数的百位和个位上。例如,当 a=45,b=12 时,c 数中
应该存放 5142
#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d",&a,&b);
    c = a%10*1000 + b/10*100+a/10*10+b%10;
    printf("%d",c);
    return 0;
}