如何让数组无值位置打印空白而非0?数组拼接列印优化问询
解决数组无值位置打印空白的问题
你可以通过条件判断区分数组的有效索引范围,超出范围时打印对应宽度的空白而非默认0值,同时保证列对齐。修改后的代码如下:
append(n1, n2, &x1, &x2, &x3); printf("x1 x2 result\n"); for(i = 0; i < (n1 + n2); i++){ // 打印x1列:i小于n1时输出数值,否则输出空白 if(i < n1){ printf("%.1f ", x1[i]); } else { printf(" "); // 和"%.1f "宽度一致,保证列对齐 } // 打印x2列:i小于n2时输出数值,否则输出空白 if(i < n2){ printf("%.1f ", x2[i]); } else { printf(" "); } // 打印result列(x3为拼接后数组,所有索引均有效) printf("%.1f\n", x3[i]); }
说明:
- 针对x1、x2列:当循环索引
i小于数组自身长度时,正常打印带一位小数的数值;超出范围时,输出和%.1f宽度匹配的空白(共9个字符位),确保列对齐效果不变。 - x3是拼接后的完整数组,长度为
n1+n2,所有索引位置都有有效元素,直接正常打印即可。
内容的提问来源于stack exchange,提问作者Annsh
相关产品推荐
相关产品推荐

