C语言print填充
时间: 2023-07-30 07:05:00 浏览: 53
在C语言中,可以使用printf函数来进行输出操作,并且可以使用填充字符来对输出进行对齐和填充。下面是一个使用填充字符进行输出的示例:
```c
#include <stdio.h>
int main() {
int num = 123;
printf("%-10d\n", num); // 左对齐,总宽度为10
printf("%10d\n", num); // 右对齐,总宽度为10
float pi = 3.14159;
printf("%-10.2f\n", pi); // 左对齐,总宽度为10,保留2位小数
printf("%10.2f\n", pi); // 右对齐,总宽度为10,保留2位小数
char ch = 'A';
printf("%-10c\n", ch); // 左对齐,总宽度为10
return 0;
}
```
输出结果:
```
123
123
3.14
3.14
A
```
在printf函数中,使用%-10d表示左对齐,总宽度为10;%10d表示右对齐,总宽度为10。同样地,可以使用%-10.2f和%10.2f来指定浮点数的对齐方式和小数位数。而对于字符类型,可以使用%-10c来进行左对齐。
相关问题
c语言print为什么有格式控制字符串
C语言中的printf函数是用来输出数据的,而格式控制字符串是用来指定输出格式的一种字符串类型参数。格式控制字符串由普通字符和转换说明符组成,可以控制输出的格式,包括输出宽度、精度、对齐方式等。
首先,格式控制字符串可以指定输出的宽度。通过在转换说明符前添加数字,可以控制输出数据的最小宽度。例如,"%5d"表示输出一个整数,最少占5列,不足的位置会用空格来填充。这样可以使得输出整齐、对齐,更加易读。
其次,格式控制字符串可以指定输出的精度。通过在转换说明符中添加".数字",可以控制浮点数或指数的小数点后的位数。例如,"%.3f"表示输出一个浮点数,小数点后保留3位数字。这样可以控制输出的精确度,避免不必要的位数。
此外,格式控制字符串还可以指定输出的对齐方式。通过在转换说明符中添加"-"或"0"来选择左对齐或右对齐,可以使得输出更易读,符合要求。例如,"%-10s"表示输出一个字符串,左对齐,并且占用10列。
总而言之,格式控制字符串为printf函数提供了灵活性,可以根据需要调整输出的格式,使得输出更清晰、更美观。它提供了对输出宽度、精度、对齐方式的控制,方便程序员根据自己的需求灵活地进行输出。而且,格式控制字符串的使用简单明了,为C语言的输出提供了便利和效率。
triomino拼图c语言
好的,以下是Triomino拼图的C语言代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define SIZE 3
void TrominoTile(int x_board, int y_board, int x_missing, int y_missing, int size_board, int board[SIZE][SIZE]) {
int x_center, y_center, count;
if (size_board == 1) {
return;
}
count = 0;
x_center = x_board + size_board / 2;
y_center = y_board + size_board / 2;
if (x_missing < x_center && y_missing < y_center) {
count++;
board[x_center - 1][y_center] = count;
board[x_center][y_center - 1] = count;
board[x_center][y_center] = count;
TrominoTile(x_board, y_board, x_missing, y_missing, size_board / 2, board);
TrominoTile(x_board, y_center, x_center - 1, y_center, size_board / 2, board);
TrominoTile(x_center, y_board, x_center, y_center - 1, size_board / 2, board);
TrominoTile(x_center, y_center, x_center, y_center, size_board / 2, board);
} else if (x_missing < x_center && y_missing >= y_center) {
count++;
board[x_center - 1][y_center - 1] = count;
board[x_center][y_center - 1] = count;
board[x_center][y_center] = count;
TrominoTile(x_board, y_board, x_center - 1, y_center - 1, size_board / 2, board);
TrominoTile(x_board, y_center, x_missing, y_missing, size_board / 2, board);
TrominoTile(x_center, y_board, x_center, y_center - 1, size_board / 2, board);
TrominoTile(x_center, y_center, x_center, y_center, size_board / 2, board);
} else if (x_missing >= x_center && y_missing < y_center) {
count++;
board[x_center - 1][y_center - 1] = count;
board[x_center - 1][y_center] = count;
board[x_center][y_center] = count;
TrominoTile(x_board, y_board, x_center - 1, y_center - 1, size_board / 2, board);
TrominoTile(x_board, y_center, x_center - 1, y_center, size_board / 2, board);
TrominoTile(x_center, y_board, x_missing, y_missing, size_board / 2, board);
TrominoTile(x_center, y_center, x_center, y_center, size_board / 2, board);
} else { // (x_missing >= x_center && y_missing >= y_center)
count++;
board[x_center - 1][y_center - 1] = count;
board[x_center][y_center - 1] = count;
board[x_center - 1][y_center] = count;
TrominoTile(x_board, y_board, x_center - 1, y_center - 1, size_board / 2, board);
TrominoTile(x_board, y_center, x_center - 1, y_center, size_board / 2, board);
TrominoTile(x_center, y_board, x_center, y_center - 1, size_board / 2, board);
TrominoTile(x_center, y_center, x_missing, y_missing, size_board / 2, board);
}
}
void PrintBoard(int board[SIZE][SIZE]) {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
printf("%2d ", board[i][j]);
}
printf("\n");
}
}
int main() {
int board[SIZE][SIZE] = {{0}};
int x_missing, y_missing;
printf("请输入缺失方块的坐标(x, y):");
scanf("%d%d", &x_missing, &y_missing);
board[x_missing][y_missing] = -1; // 标记缺失方块
TrominoTile(0, 0, x_missing, y_missing, SIZE, board);
printf("Triomino拼图如下:\n");
PrintBoard(board);
return 0;
}
```
在代码中,先定义了一个`TrominoTile`函数,用于填充拼图。其中,`x_board`和`y_board`表示当前矩阵的左上角坐标,`size_board`表示当前矩阵的大小,`x_missing`和`y_missing`表示缺失方块的坐标。当`size_board`等于1时,表示只有一个方块,直接返回;否则,根据缺失方块所在的象限,将矩阵分为四个子矩阵,递归调用`TrominoTile`函数进行填充。
在`main`函数中,先将缺失方块的位置标记为-1,然后调用`TrominoTile`函数进行填充。最后,调用`PrintBoard`函数打印填充后的矩阵。
希望能够帮到你!