C语言输入任一整数,要求12位字符宽度输出,以 (1)右对齐 (2)左对齐 (3) 输出数值时指定左面不使用的空位置自动填0的方式 三种方式输出。
时间: 2024-10-22 17:19:06 浏览: 22
在C语言中,你可以使用`printf`函数结合格式控制符来实现这种需求。以下是三种不同的方式:
1. **右对齐** (使用空格填充左边)
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
// 使用"%*d"预留空间,%d会忽略前面的空格并打印数字
printf("12位右对齐:%%%21.1d\n", num); // 21个字符,前19个用于空格,1个用于数字本身
return 0;
}
```
2. **左对齐** (使用0填充左边)
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
// "%012d"表示总长度固定为12位,不足部分用0填充
printf("12位左对齐:%012d\n", num);
return 0;
}
```
3. **左对齐且前部补0** (使用0填充左边,非0数字前面保留原有空格)
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
// 如果数字小于12位,则在前加上原前置零,如果大于等于12位则保持原样
char str[14]; // 留两个额外的位置给前导0和'\0'
sprintf(str, "%2d", num); // 格式化成两位数,然后复制到str
// 如果字符串长度小于12,添加0到左侧
if (strlen(str) < 12) {
for (int i = strlen(str); i < 12; ++i) {
str[i] = '0';
}
}
printf("12位左对齐(前面留空):%s\n", str);
return 0;
}
```
阅读全文