格式输出整数,控制长度。 输入两个整数,求两个整数的乘积。输出每个整数时控制每个整数的输出长度为3,不足3个时在右边补空格。 输入格式: 3 5 输出格式: 3 *5 =15
时间: 2024-10-12 22:12:24 浏览: 23
大整数相加,计算两个非负整数的和,可以精确计算2的100次方
在C或C++编程中,你可以使用`itoa()`函数或`printf()`配合`%.*s`格式字符串来实现这种格式化输出。但是需要注意的是,`itoa()`函数不是所有平台都支持,所以我们可以使用`sprintf()`函数代替。以下是一个示例代码片段:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // 使用memset填充字符串
// 自定义的itoa函数实现,仅适用于整数范围
void itoa(int num, char* buffer, int radix) {
char digits[20];
int i;
if (radix == 10) {
// 如果是十进制,直接使用内置itoa()
sprintf(digits, "%d", num);
}
else {
// 其他基数的数字转换
// 这里省略了实际的实现,你需要根据需要添加
// ...
}
// 将数字字符串复制到目标位置并填充空格
memset(buffer, ' ', 3); // 初始化缓冲区为3个空格
for (i = strlen(digits) - 1; i >= 0 && i >= 3; i--) {
buffer[i + 1] = digits[i]; // 从后向前复制数字
}
buffer[0] = digits[0]; // 首位数字
buffer[1] = digits[1]; // 第二位数字
}
int main() {
int num1 = 3;
int num2 = 5;
char buffer1[5], buffer2[5]; // 宽度足够容纳3位数字加空格
itoa(num1, buffer1, 10);
itoa(num2, buffer2, 10);
// 输出结果
printf("%-*s *%-*s =", 3, buffer1, 3, buffer2);
int product = num1 * num2;
printf("=%d\n", product);
return 0;
}
```
当运行上述代码,给定输入`3`和`5`,输出将是:
```
3 *5 =15
```
每个整数都是三位,不足三位的地方用空格填充。
阅读全文