我就是这样做的printf( (n==0) ? " %d" : " %3d", n ); 但是有条件格式描述符吗?因此,它的含义类似于“如果这样短暂地使用这样的填充,但是如果更长时使用这样的填充”。可以做? 最佳答案 没有条件,但是您可以使用*在参数中指定宽度。例如。:printf(" %*d", (n==0)?1:3, n);