从键盘上输入两个两位的正整数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);
}
用求余分解数字,然后按要求乘上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;
}