2、定义两个整数a和b,从键盘上以八进制和十六进制形式输入两个数赋值给a和b,计算a和b的乘积,并以十进制、十六进制和八进制形式输出。
时间: 2024-10-25 16:09:14 浏览: 34
C语言-复习资料答案.docx
在C语言中,可以使用`scanf`函数以指定的进制格式接收用户的输入,然后计算两个数的乘积并按照要求输出。以下是实现此功能的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int a, b;
const char *decimal_format = "0*";
const char *octal_format = "0[0-7]*";
const char *hex_format = "0x[0-9a-fA-F]*";
// 八进制输入
printf("请输入第一个八进制数(例如: 012): ");
scanf(octal_format, &a);
// 十六进制输入
printf("请输入第一个十六进制数(例如: 0x1F): ");
scanf(hex_format, &a);
// 检查输入是否有效
if (a == 0) {
printf("无效输入, 数字应非零。\n");
return 1;
}
// 再次输入第二数
printf("请输入第二个数(同样格式): ");
scanf(decimal_format, &b);
// 计算乘积
int product_decimal = a * b;
// 输出结果
printf("两数的乘积(十进制): %d\n", product_decimal);
printf("乘积的十六进制形式: 0x%04X\n", product_decimal);
printf("乘积的八进制形式: %o\n", product_decimal);
return 0;
}
```
请注意,十六进制输出部分需要手动调整位宽以保证格式清晰,这里使用了`0x%04X`表示固定四位宽度的十六进制数。
阅读全文