例如我有一些x,y坐标。 如何在屏幕上打印多个x,y,以便每行只有4个坐标。
因此,让我们说所有x和y在整个过程中都是相同的,我希望在x = 1和y = 2的情况下打印出来。
1 2 1 2 1 2 1 2
1 2 1 2 1 2 1 2
1 2 1 2 1 2 1 2
..............
fprintf中(?)
答案 0 :(得分:0)
由于您每行只需要四个,所以只需执行以下操作:
printf("%d %d %d %d %d %d %d %d\n", x, y, x, y, x, y, x, y);
可以根据需要添加任意数量的行。
答案 1 :(得分:0)
假设你有这样的事情:
typedef struct point {
int x;
int y;
} point_t ;
#define NUM_OF_LINES 5
#define POINTS_PER_LINE 4
int main( void ) {
point_t p[NUM_OF_LINES][POINTS_PER_LINE];
// fill points with valid data somehow
// print points
for (int i = 0; i != NUM_OF_LINES; i++) {
for( int j = 0; j != POINTS_PER_LINE; j++ )
printf("%d %d ", p[i][j].x, p[i][j].y);
printf("\n");
}
}
答案 2 :(得分:0)
for (int i=0; i<total_points; i++) {
printf("%d %d", points[i].x, points[i].y);
if (i % points_per_line == 0)
printf("\n");
else
printf(" ");
}
...或者,如果你不介意某些人可能会认为有些“棘手”的代码:
static char seps[] = {'\n', ' '};
for (int i=0; i<total_points; i++)
printf("%d %d%c",
points[i].x,
points[i].y,
seps[(i%points_per_line)==0]);
无论哪种方式,这些显然都假设某个点的正常定义,大概是:
typedef struct {
int x;
int y;
} point;