我想根据输入N打印号码。
随着N范围的增加,我会被搞砸了。
有没有比这更容易的解决方案了?
如果有人帮助我,我将非常感激。谢谢!
if (N == 3) {
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%03d ",y[a][b]);
}
cout << endl;
}
}
else if (N == 4) {
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%04d ", y[a][b]);
}
cout << endl;
}
}
else if (N == 5) {
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%05d ", y[a][b]);
}
cout << endl;
}
}
else if (N == 6) {
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%06d ", y[a][b]);
}
cout << endl;
}
}
else {
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%07d ", y[a][b]);
}
cout << endl;
}
}
答案 0 :(得分:3)
使用Transaction Receipt
格式的*
宽度参数说明符(假设:N是一个整数)
printf
答案 1 :(得分:0)
尝试
for (int a = 0; a < N; a++) {
for (int b = 0; b < 3; b++) {
printf("%0*d ",N, y[a][b]);
}
cout << endl;
}
我通过电话输入解决方案。当我打开电脑时会对其进行测试
这称为动态宽度说明符。 Reference
宽度说明
(数字)要打印的最小字符数。 如果要打印的值小于此数字,则结果为 用空白填充。即使该值不会被截断 结果更大。
*宽度不是在format字符串中指定的,而是在必须为 格式化。