用C语言编写一个程序,它接收用户通过键盘输入的1到9之间的整数,然后根据这个数字生成并打印相应的九九乘法表。每个乘积结果应占据3个字符宽度,并保持在左边对齐。如何实现这样的输出格式?
时间: 2024-11-30 14:28:38 浏览: 6
从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出
5星 · 资源好评率100%
在C语言中,我们可以使用嵌套循环来生成乘法表,并利用printf函数控制输出格式。下面是一个简单的示例程序:
```c
#include <stdio.h>
void print_multiplication_table(int n) {
if (n < 1 || n > 9) {
printf("请输入1到9之间的整数\n");
return;
}
// 使用setw设置每个乘积数字的宽度为3
int space_width = 3 - snprintf(NULL, 0, "%d", 1 * n); // 计算首列所需的空格数
for (int i = 1; i <= n; ++i) { // 行
for (int j = 1; j <= n; ++j) { // 列
int product = i * j;
char product_str[5]; // 存储乘积
sprintf(product_str, "%3d", product); // 设置宽度为3并填充0
// 输出格式:空格-乘积-乘数-等于-结果
printf("%*s%dx%d = %s ", space_width, "", i, j, product_str);
}
printf("\n"); // 换行
space_width += 4; // 每行结束后的空格增加
}
}
int main() {
int input;
printf("请输入一个1到9之间的整数: ");
scanf("%d", &input);
print_multiplication_table(input);
return 0;
}
```
阅读全文