从键盘输入2个4位数正整数a和b,重新组合成新的2个4位数数字c和d,其中c从左到右由a的百位、b的千位、b的个位和a的十位组成,d从左到右由b的十位、a的个位、a的千位和b的百位组成,C语言
时间: 2024-10-28 14:11:42 浏览: 38
在C语言中,你可以使用结构体来存储每一位数字,并结合数组操作来完成这个任务。首先,创建两个数组分别存放a和b的每位数字,然后按照指定顺序拼接起来形成新的数字c和d。下面是一个简单的示例程序:
```c
#include <stdio.h>
// 定义一个结构体来表示四位数
typedef struct {
int digit[4];
} FourDigitNumber;
// 函数来获取用户输入并转换为结构体形式
FourDigitNumber input_numbers() {
FourDigitNumber num1, num2;
printf("请输入第一个4位数(a): ");
for (int i = 0; i < 4; i++) {
scanf("%1d", &num1.digit[i]);
}
printf("请输入第二个4位数(b): ");
for (int i = 0; i < 4; i++) {
scanf("%1d", &num2.digit[i]);
}
return {num1.digit[num1.digit.length - 1], num2.digit[0], num2.digit[num2.digit.length - 1], num1.digit[0]};
}
// 拼接数字
void combine_numbers(FourDigitNumber a, FourDigitNumber b, FourDigitNumber* c, FourDigitNumber* d) {
*c = (FourDigitNumber){b.digit[0], a.digit[0], b.digit[3], a.digit[1]};
*d = (FourDigitNumber){a.digit[3], b.digit[2], a.digit[0], b.digit[0]};
}
int main() {
FourDigitNumber a, b, c, d;
// 获取输入并拼接
a = input_numbers();
b = input_numbers();
combine_numbers(a, b, &c, &d);
// 输出结果
printf("新数字c: %d\n", c.digit[0] * 1000 + c.digit[1] * 100 + c.digit[2] * 10 + c.digit[3]);
printf("新数字d: %d\n", d.digit[0] * 1000 + d.digit[1] * 100 + d.digit[2] * 10 + d.digit[3]);
return 0;
}
```
当你运行此程序,它会提示你输入两个4位数,然后生成并输出组合后的数字c和d。
阅读全文